diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 038498ea6..eef81519f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,16 +15,16 @@ jobs:
strategy:
fail-fast: false
matrix:
- node-version: [^16.18, ^18.16, ^20.3]
+ node-version: [^18.18, ^20.8, ^21]
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Enable symlinks
if: matrix.os == 'windows-latest'
run: |
git config core.symlinks true
git reset --hard
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
@@ -41,10 +41,10 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- ts-version: [~5.1]
+ ts-version: [~5.2, ~5.3]
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm
@@ -59,8 +59,8 @@ jobs:
name: Test package-lock for unexpected modifications
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm
@@ -79,8 +79,8 @@ jobs:
name: Install dependencies without using a lockfile
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
node-version-file: package.json
- run: npm install --no-package-lock --no-audit
@@ -91,8 +91,8 @@ jobs:
name: Lint source files
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm
diff --git a/.gitignore b/.gitignore
index d4bc6925c..1f8ca5804 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/.tap
/coverage
/media/**/node_modules/
/node_modules/
diff --git a/.taprc b/.taprc
index b1aab24e1..49ec6b085 100644
--- a/.taprc
+++ b/.taprc
@@ -1,10 +1,8 @@
-browser: false
-coverage: false
-files:
- - "test-tap/*.js"
- - "test-tap/reporters/*.js"
- - "test-tap/integration/*.js"
-flow: false
-jsx: false
+disable-coverage: true
+allow-empty-coverage: true
+include:
+ - test-tap/*.js
+ - test-tap/reporters/*.js
+ - test-tap/integration/*.js
timeout: 300
-ts: false
+tsconfig: test-tap/tsconfig.json
diff --git a/.xo-config.cjs b/.xo-config.cjs
index 01f8786db..f19110954 100644
--- a/.xo-config.cjs
+++ b/.xo-config.cjs
@@ -9,8 +9,11 @@ module.exports = {
'media/**',
'test/config/fixtures/config-errors/test.js',
'test/line-numbers/fixtures/line-numbers.js',
+ 'test/**/fixtures',
'test-tap/fixture/snapshots/test-sourcemaps/build/**',
'test-tap/fixture/report/edgecases/ast-syntax-error.cjs',
+ 'test-tap/fixture/**/*.ts',
+ 'test-types',
'examples/typescript-*/**/*.ts',
],
rules: {
@@ -25,6 +28,7 @@ module.exports = {
],
'import/newline-after-import': 'error',
'unicorn/require-post-message-target-origin': 'off',
+ 'unicorn/prefer-event-target': 'off',
},
overrides: [
{
diff --git a/ava.config.js b/ava.config.js
index 559513382..940832901 100644
--- a/ava.config.js
+++ b/ava.config.js
@@ -4,7 +4,9 @@ const skipWatchMode = process.env.TEST_AVA_SKIP_WATCH_MODE ? ['!test/watch-mode/
export default { // eslint-disable-line import/no-anonymous-default-export
files: ['test/**', '!test/**/{fixtures,helpers}/**', ...skipWatchMode],
- ignoredByWatcher: ['{coverage,docs,media,test-types,test-tap}/**'],
+ watchMode: {
+ ignoreChanges: ['{coverage,docs,media,test-types,test-tap}/**'],
+ },
environmentVariables: {
AVA_FAKE_SCM_ROOT: '.fake-root', // This is an internal test flag.
},
diff --git a/docs/01-writing-tests.md b/docs/01-writing-tests.md
index abec90c38..84836a1a5 100644
--- a/docs/01-writing-tests.md
+++ b/docs/01-writing-tests.md
@@ -10,7 +10,7 @@ AVA tries to run test files with their current working directory set to the dire
## Test isolation
-Each test file is run in a new worker thread. This is new as of AVA 4, though you can fall back to AVA 3's behavior of running in separate processes.
+By default each test file is run in a new worker thread. You can fall back running in separate processes.
AVA will set `process.env.NODE_ENV` to `test`, unless the `NODE_ENV` environment variable has been set. This is useful if the code you're testing has test defaults (for example when picking what database to connect to). It may cause your code or its dependencies to behave differently though. Note that `'NODE_ENV' in process.env` will always be `true`.
@@ -154,7 +154,7 @@ AVA lets you register hooks that are run before and after your tests. This allow
If a test is skipped with the `.skip` modifier, the respective `.beforeEach()`, `.afterEach()` and `.afterEach.always()` hooks are not run. Likewise, if all tests in a test file are skipped `.before()`, `.after()` and `.after.always()` hooks for the file are not run.
-*You may not need to use `.afterEach.always()` hooks to clean up after a test.* You can use [`t.teardown()`](./02-execution-context.md#tteardownfn) to undo side-effects *within* a particular test.
+*You may not need to use `.afterEach.always()` hooks to clean up after a test.* You can use [`t.teardown()`](./02-execution-context.md#tteardownfn) to undo side-effects *within* a particular test. Or use [`registerCompletionHandler()`](./08-common-pitfalls.md#timeouts-because-a-file-failed-to-exit) to run cleanup code after AVA has completed its work.
Like `test()` these methods take an optional title and an implementation function. The title is shown if your hook fails to execute. The implementation is called with an [execution object](./02-execution-context.md). You can use assertions in your hooks. You can also pass a [macro function](#reusing-test-logic-through-macros) and additional arguments.
diff --git a/docs/03-assertions.md b/docs/03-assertions.md
index 015656c0f..4c1cfa73c 100644
--- a/docs/03-assertions.md
+++ b/docs/03-assertions.md
@@ -21,7 +21,11 @@ test('unicorns are truthy', t => {
If multiple assertion failures are encountered within a single test, AVA will only display the *first* one.
-Assertions return a boolean indicating whether they passed. You can use this to return early from a test. Note that this does not apply to the "throws" and `snapshot()` assertions.
+Assertions return `true` if they've passed and throw otherwise. Catching this error does not cause the test to pass. The error value is undocumented.
+
+If you use TypeScript you can use some assertions as type guards.
+
+Note that the "throws" assertions return the error that was thrown (provided the assertion passed).
## Assertion planning
@@ -95,39 +99,39 @@ test('custom assertion', t => {
### `.pass(message?)`
-Passing assertion. Returns a boolean indicating whether the assertion passed.
+Passing assertion.
### `.fail(message?)`
-Failing assertion. Returns a boolean indicating whether the assertion passed.
+Failing assertion.
### `.assert(actual, message?)`
-Asserts that `actual` is truthy. Returns a boolean indicating whether the assertion passed.
+Asserts that `actual` is truthy.
### `.truthy(actual, message?)`
-Assert that `actual` is truthy. Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is truthy.
### `.falsy(actual, message?)`
-Assert that `actual` is falsy. Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is falsy.
### `.true(actual, message?)`
-Assert that `actual` is `true`. Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is `true`.
### `.false(actual, message?)`
-Assert that `actual` is `false`. Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is `false`.
### `.is(actual, expected, message?)`
-Assert that `actual` is the same as `expected`. This is based on [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is the same as `expected`. This is based on [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
### `.not(actual, expected, message?)`
-Assert that `actual` is not the same as `expected`. This is based on [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is not the same as `expected`. This is based on [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
### `.deepEqual(actual, expected, message?)`
@@ -135,7 +139,7 @@ Assert that `actual` is deeply equal to `expected`. See [Concordance](https://gi
### `.notDeepEqual(actual, expected, message?)`
-Assert that `actual` is not deeply equal to `expected`. The inverse of `.deepEqual()`. Returns a boolean indicating whether the assertion passed.
+Assert that `actual` is not deeply equal to `expected`. The inverse of `.deepEqual()`.
### `.unorderedEqual(actual, expected, message?)`
@@ -176,14 +180,12 @@ You can also use arrays, but note that any indices in `actual` that are not in `
t.like([1, 2, 3, 4], [1, , 3])
```
-Finally, this returns a boolean indicating whether the assertion passed.
-
### `.throws(fn, expectation?, message?)`
-Assert that an error is thrown. `fn` must be a function which should throw. The thrown value *must* be an error. It is returned so you can run more assertions against it. If the assertion fails then `undefined` is returned.
-
+Assert that an error is thrown. `fn` must be a function which should throw. By default, the thrown value *must* be an error. It is returned so you can run more assertions against it.
`expectation` can be an object with one or more of the following properties:
+* `any`: a boolean, if `true` then the thrown value does not need to be an error. Defaults to `false`
* `instanceOf`: a constructor, the thrown error must be an instance of
* `is`: the thrown error must be strictly equal to `expectation.is`
* `message`: the following types are valid:
@@ -215,10 +217,10 @@ test('throws', t => {
Assert that an error is thrown. `thrower` can be an async function which should throw, or a promise that should reject. This assertion must be awaited.
-The thrown value *must* be an error. It is returned so you can run more assertions against it. If the assertion fails then `undefined` is returned.
-
+By default, the thrown value *must* be an error. It is returned so you can run more assertions against it.
`expectation` can be an object with one or more of the following properties:
+* `any`: a boolean, if `true` then the thrown value does not need to be an error. Defaults to `false`
* `instanceOf`: a constructor, the thrown error must be an instance of
* `is`: the thrown error must be strictly equal to `expectation.is`
* `message`: the following types are valid:
@@ -251,7 +253,7 @@ test('rejects', async t => {
### `.notThrows(fn, message?)`
-Assert that no error is thrown. `fn` must be a function which shouldn't throw. Does not return anything.
+Assert that no error is thrown. `fn` must be a function which shouldn't throw.
### `.notThrowsAsync(nonThrower, message?)`
@@ -265,15 +267,13 @@ test('resolves', async t => {
});
```
-Does not return anything.
-
### `.regex(contents, regex, message?)`
-Assert that `contents` matches `regex`. Returns a boolean indicating whether the assertion passed.
+Assert that `contents` matches `regex`.
### `.notRegex(contents, regex, message?)`
-Assert that `contents` does not match `regex`. Returns a boolean indicating whether the assertion passed.
+Assert that `contents` does not match `regex`.
### `.snapshot(expected, message?)`
@@ -285,7 +285,7 @@ Compares the `expected` value with a previously recorded snapshot. Snapshots are
The implementation function behaves the same as any other test function. You can even use macros. The first title argument is always optional. Additional arguments are passed to the implementation or macro function.
-`.try()` is an asynchronous function. You must `await` it. The result object has `commit()` and `discard()` methods. You must decide whether to commit or discard the result. If you commit a failed result, your test will fail.
+`.try()` is an asynchronous function. You must `await` it. The result object has `commit()` and `discard()` methods. You must decide whether to commit or discard the result. If you commit a failed result, your test will fail. Calling `commit()` on a failed result will throw an error.
You can check whether the attempt passed using the `passed` property. Any assertion errors are available through the `errors` property. The attempt title is available through the `title` property.
@@ -324,5 +324,3 @@ test('flaky macro', async t => {
secondTry.commit();
});
```
-
-Returns a boolean indicating whether the assertion passed.
diff --git a/docs/07-test-timeouts.md b/docs/07-test-timeouts.md
index 85dc99649..0e0f7b9a0 100644
--- a/docs/07-test-timeouts.md
+++ b/docs/07-test-timeouts.md
@@ -4,7 +4,7 @@ Translations: [Français](https://github.com/avajs/ava-docs/blob/main/fr_FR/docs
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/avajs/ava/tree/main/examples/timeouts?file=test.js&terminal=test&view=editor)
-Timeouts in AVA behave differently than in other test frameworks. AVA resets a timer after each test, forcing tests to quit if no new test results were received within the specified timeout. This can be used to handle stalled tests.
+Timeouts in AVA behave differently than in other test frameworks. AVA resets a timer after each test, forcing tests to quit if no new test results were received within the specified timeout. This can be used to handle stalled tests. This same mechanism is used to determine when a test file is preventing a clean exit.
The default timeout is 10 seconds.
diff --git a/docs/08-common-pitfalls.md b/docs/08-common-pitfalls.md
index 9ee2330d2..9a2533fa0 100644
--- a/docs/08-common-pitfalls.md
+++ b/docs/08-common-pitfalls.md
@@ -14,7 +14,12 @@ Note that the following is not a native error:
const error = Object.create(Error.prototype);
```
-This can be surprising, since `error instanceof Error` returns `true`.
+This can be surprising, since `error instanceof Error` returns `true`. You can set `any: true` in the expectations to handle these values:
+
+```js
+const error = Object.create(Error.prototype);
+t.throws(() => { throw error }, {any: true});
+```
## AVA in Docker
@@ -76,6 +81,37 @@ Error [ERR_WORKER_INVALID_EXEC_ARGV]: Initiated Worker with invalid execArgv fla
If possible don't specify the command line option when running AVA. Alternatively you could [disable worker threads in AVA](./06-configuration.md#options).
+## Timeouts because a file failed to exit
+
+You may get a "Timed out while running tests" error because AVA failed to exit when running a particular file.
+
+AVA waits for Node.js to exit the worker thread or child process. If this takes too long, AVA counts it as a timeout.
+
+It is best practice to make sure your code exits cleanly. We've also seen occurrences where an explicit `process.exit()` call inside a worker thread could not be observed in AVA's main process.
+
+For these reasons we're not providing an option to disable this timeout behavior. However, it is possible to register a callback for when AVA has completed the test run without uncaught exceptions or unhandled rejections. From inside this callback you can do whatever you need to do, including calling `process.exit()`.
+
+Create a `_force-exit.mjs` file:
+
+```js
+import process from 'node:process';
+import { registerCompletionHandler } from 'ava';
+
+registerCompletionHandler(() => {
+ process.exit();
+});
+```
+
+Completion handlers are invoked in order of registration. Results are not awaited.
+
+Load it for all test files through AVA's `require` option:
+
+```js
+export default {
+ require: ['./_force-exit.mjs'],
+};
+```
+
## Sharing variables between asynchronous tests
By default AVA executes tests concurrently. This can cause problems if your tests are asynchronous and share variables.
@@ -107,7 +143,7 @@ test('increment twice', async t => {
});
```
-Concurrent tests allow for asynchronous tests to execute more quickly, but if they rely on shared state you this may lead to unexpected test failures. If the shared state cannot be avoided, you can execute your tests serially:
+Concurrent tests allow for asynchronous tests to execute more quickly, but if they rely on shared state this may lead to unexpected test failures. If the shared state cannot be avoided, you can execute your tests serially:
```js
import test from 'ava';
diff --git a/docs/recipes/endpoint-testing.md b/docs/recipes/endpoint-testing.md
index b54ef7d9b..5eaa08394 100644
--- a/docs/recipes/endpoint-testing.md
+++ b/docs/recipes/endpoint-testing.md
@@ -11,7 +11,7 @@ Since tests run concurrently, it's best to create a fresh server instance at lea
Check out the example below:
```js
-import http from 'http';
+import http from 'node:http';
import test from 'ava';
import got from 'got';
import listen from 'test-listen';
diff --git a/docs/recipes/es-modules.md b/docs/recipes/es-modules.md
deleted file mode 100644
index 6358063bb..000000000
--- a/docs/recipes/es-modules.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Using ES modules in AVA
-
-AVA 4 supports ES modules out of the box.
diff --git a/docs/recipes/react.md b/docs/recipes/react.md
deleted file mode 100644
index edb792fce..000000000
--- a/docs/recipes/react.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# Testing React components with AVA 3
-
-Translations: [Español](https://github.com/avajs/ava-docs/blob/main/es_ES/docs/recipes/react.md), [Français](https://github.com/avajs/ava-docs/blob/main/fr_FR/docs/recipes/react.md)
-
-**AVA 4 no longer has built-in Babel support, and `t.snapshot()` and `t.deepEqual()` no longer recognize React elements either. Therefore this recipe is mostly relevant for AVA 3 users.**
-
-## Setting up Babel
-
-When you [enable Babel](https://github.com/avajs/babel), AVA 3 will automatically extend your regular (project-level) Babel configuration. You should be able to use React in your test files without any additional configuration.
-
-However if you want to set it up explicitly, add the preset to the test options in AVA's Babel pipeline by modifying your `package.json` or `ava.config.*` file.
-
-**`package.json`:**
-
-```json
-{
- "ava": {
- "babel": {
- "testOptions": {
- "presets": ["@babel/preset-react"]
- }
- }
- }
-}
-```
-
-You can find more information in [`@ava/babel`](https://github.com/avajs/babel).
-
-## Using [Enzyme](https://github.com/airbnb/enzyme)
-
-Let's first see how to use AVA with one of the most popular React testing libraries: [Enzyme](https://github.com/enzymejs/enzyme).
-
-If you intend to only use [shallow component rendering](https://facebook.github.io/react/docs/test-utils.html#shallow-rendering), you don't need any extra setup.
-
-### Install Enzyme
-
-First install [Enzyme and its required adapter](https://github.com/enzymejs/enzyme#installation):
-
-```console
-$ npm install --save-dev enzyme enzyme-adapter-react-16
-```
-
-### Set up Enzyme
-
-Create a helper file, prefixed with an underscore. This ensures AVA does not treat it as a test.
-
-`test/_setup-enzyme-adapter.js`:
-
-```js
-import Enzyme from 'enzyme';
-import Adapter from 'enzyme-adapter-react-16';
-
-Enzyme.configure({
- adapter: new Adapter()
-});
-```
-
-### Configure tests to use Enzyme
-
-Configure AVA to `require` the helper before every test file.
-
-**`package.json`:**
-
-```json
-{
- "ava": {
- "require": [
- "./test/_setup-enzyme-adapter.js"
- ]
- }
-}
-```
-
-### Enjoy
-
-Then you can use Enzyme straight away:
-
-`test.js`:
-
-```js
-import test from 'ava';
-import React from 'react';
-import PropTypes from 'prop-types';
-import {shallow} from 'enzyme';
-
-const Foo = ({children}) =>
-
- bar
- {children}
- bar
-
;
-
-Foo.propTypes = {
- children: PropTypes.any
-};
-
-test('has a .Foo class name', t => {
- const wrapper = shallow();
- t.true(wrapper.hasClass('Foo'));
-});
-
-test('renders two `.Bar`', t => {
- const wrapper = shallow();
- t.is(wrapper.find('.bar').length, 2);
-});
-
-test('renders children when passed in', t => {
- const wrapper = shallow(
-
-
-
- );
- t.true(wrapper.contains());
-});
-```
-
-Enzyme also has a `mount` and `render` helper to test in an actual browser environment. If you want to use these helpers, you will have to setup a browser environment. Check out the [browser testing recipe](https://github.com/avajs/ava/blob/main/docs/recipes/browser-testing.md) on how to do so.
-
-To see an example of AVA working together with Enzyme set up for browser testing, have a look at [this sample project](https://github.com/adriantoine/ava-enzyme-demo).
-
-This is a basic example on how to integrate Enzyme with AVA. For more information about using Enzyme for unit testing React component, have a look at [Enzyme's documentation](https://enzymejs.github.io/enzyme/).
-
-## Using JSX helpers
-
-Another approach to testing React component is to use the [`react-element-to-jsx-string`](https://github.com/algolia/react-element-to-jsx-string) package to compare DOM trees as strings. [`jsx-test-helpers`](https://github.com/MoOx/jsx-test-helpers) is a nice library handling [shallow component rendering](https://facebook.github.io/react/docs/test-utils.html#shallow-rendering) and converting JSX to string in order to test React components using AVA assertions.
-
-```console
-$ npm install --save-dev jsx-test-helpers
-```
-
-Usage example:
-
-```js
-import test from 'ava';
-import React from 'react';
-import PropTypes from 'prop-types';
-import {renderJSX, JSX} from 'jsx-test-helpers';
-
-const Foo = ({children}) =>
-
- bar
- {children}
- bar
-
;
-
-Foo.propTypes = {
- children: PropTypes.any
-};
-
-test('renders correct markup', t => {
- const actual = renderJSX();
- const expected = JSX(
-
- bar
- bar
-
- );
- t.is(actual, expected);
-});
-
-test('renders children when passed in', t => {
- const actual = renderJSX(
-
-
-
- );
- const expected = JSX(
-
- );
- t.is(actual, expected);
-});
-```
-
-Note that you have to use variables like `actual` and `expected` because [`power-assert` doesn't handle JSX correctly](https://github.com/power-assert-js/power-assert/issues/34).
-
-This is a basic example on how to use `jsx-test-helpers` with AVA. To see a more advanced usage of this library, have a look at [this annotated test file](https://github.com/MoOx/jsx-test-helpers/blob/master/src/__tests__/index.js).
-
-[This sample project](https://github.com/MoOx/jsx-test-helpers) shows a basic and minimal setup of AVA with `jsx-test-helpers`.
-
-## Using other assertion libraries
-
-In AVA, you can use any assertion library, and there are already a few out there to test React components. Here is a list of assertion libraries working well with AVA:
-
-- [`expect-jsx`](https://github.com/algolia/expect-jsx) ([Example](https://github.com/avajs/ava/issues/186#issuecomment-161317068))
-- [`unexpected-react`](https://github.com/bruderstein/unexpected-react) ([Sample project with an output example](https://github.com/adriantoine/ava-unexpected-react-demo))
diff --git a/docs/recipes/typescript.md b/docs/recipes/typescript.md
index 7ee9308ce..7966caa8f 100644
--- a/docs/recipes/typescript.md
+++ b/docs/recipes/typescript.md
@@ -4,7 +4,7 @@ Translations: [Español](https://github.com/avajs/ava-docs/blob/main/es_ES/docs/
AVA comes bundled with a TypeScript definition file. This allows developers to leverage TypeScript for writing tests.
-This guide assumes you've already set up TypeScript for your project. Note that AVA's definition expects at least version 5.1.
+This guide assumes you've already set up TypeScript for your project. Note that AVA's definition expects at least version 5.2.
## Enabling AVA's support for TypeScript test files
@@ -17,30 +17,21 @@ Broadly speaking, there are two ways to run tests written in TypeScript:
**You can use loaders, but you're largely on your own. [Please post questions to our Discussions forum if you're stuck](https://github.com/avajs/ava/discussions/categories/q-a).**
+> [!NOTE]
+> Custom loaders changed with the release of Node.js 20. This recipe assumes your Node.js version is equal to or higher than the following. For older versions, please see a [previous commit](https://github.com/avajs/ava/blob/aae39b20ba3ef80e5bedb1e5882432a3cd7c44eb/docs/recipes/typescript.md).
+>
+> | Node.js Major Version | Minimum Version |
+> | --------------------- | --------------- |
+> | 18 | 18.18.0 |
+> | 20 | 20.8.0 |
+> | 21 | 21.0.0 |
+
There are two components to a setup like this:
1. [Make sure AVA recognizes the extensions of your TypeScript files](../06-configuration.md#configuring-module-formats)
2. Install the loader [through `nodeArguments`](../06-configuration.md#node-arguments)
-[`tsx`](https://github.com/esbuild-kit/tsx) may be the best loader available. The setup, assuming your TypeScript config outputs ES modules, would look like this:
-
-`package.json`:
-
-```json
-"ava": {
- "extensions": {
- "ts": "module"
- },
- "nodeArguments": [
- "--loader=tsx"
- ]
-}
-```
-### When using custom loaders
-
-#### Mocking
-
-Mocking with `tsx` (such as with [`esmock`](https://github.com/iambumblehead/esmock)) isn't currently possible (https://github.com/esbuild-kit/tsx/issues/264). [`ts-node`](https://github.com/TypeStrong/ts-node) can be used instead:
+[`tsimp`](https://github.com/tapjs/tsimp) may be the best loader available. The setup, assuming your TypeScript config outputs ES modules, would look like this:
`package.json`:
@@ -50,24 +41,11 @@ Mocking with `tsx` (such as with [`esmock`](https://github.com/iambumblehead/esm
"ts": "module"
},
"nodeArguments": [
- "--loader=ts-node/esm",
- "--loader=esmock"
+ "--import=tsimp"
]
}
```
-#### Node.js 20
-
-In Node.js 20, custom loaders must be specified via the `NODE_OPTIONS` environment variable:
-
-`package.json`:
-
-```json
-"scripts": {
- "test": "NODE_OPTIONS='--loader=tsx' ava"
-}
-```
-
## Writing tests
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/avajs/ava/tree/main/examples/typescript-basic?file=source%2Ftest.ts&terminal=test&view=editor)
@@ -177,7 +155,7 @@ Note that, despite the type cast above, when executing `t.context` is an empty o
## Typing `throws` assertions
-The `t.throws()` and `t.throwsAsync()` assertions are typed to always return an Error. You can customize the error class using generics:
+The `t.throws()` and `t.throwsAsync()` assertions are typed to always return an `Error`. You can customize the error class using generics:
```ts
import test from 'ava';
@@ -206,6 +184,4 @@ test('throwsAsync', async t => {
});
```
-Note that, despite the typing, the assertion returns `undefined` if it fails. Typing the assertions as returning `Error | undefined` didn't seem like the pragmatic choice.
-
[`@ava/typescript`]: https://github.com/avajs/typescript
diff --git a/docs/recipes/watch-mode.md b/docs/recipes/watch-mode.md
index 710ce8996..39d7c4bee 100644
--- a/docs/recipes/watch-mode.md
+++ b/docs/recipes/watch-mode.md
@@ -4,17 +4,6 @@ Translations: [Français](https://github.com/avajs/ava-docs/blob/main/fr_FR/docs
AVA comes with an intelligent watch mode. It watches for files to change and runs just those tests that are affected.
-AVA 6 is introducing a new watch mode that relies on recurse file watching in Node.js. To use the old watch mode, set the implementation to `ava5+chokidar` and install [`chokidar`] alongside AVA:
-
-`ava.config.mjs`:
-```js
-export default {
- watchMode: {
- implementation: 'ava5+chokidar',
- },
-}
-```
-
## Running tests with watch mode enabled
You can enable watch mode using the `--watch` or `-w` flags:
@@ -27,19 +16,13 @@ Please note that integrated debugging and the TAP reporter are unavailable when
## Requirements
-AVA 5 uses [`chokidar`] as the file watcher. Note that even if you see warnings about optional dependencies failing during install, it will still work fine. Please refer to the *[Install Troubleshooting]* section of `chokidar` documentation for how to resolve the installation problems with chokidar.
-
-The same applies with AVA 6 when using the `ava5+chokidar` watcher. However you'll need to install `chokidar` separately.
-
-Otherwise, AVA 6 uses `fs.watch()`. Support for `recursive` mode is required. Note that this has only become available on Linux since Node.js 20. [Other caveats apply](https://nodejs.org/api/fs.html#caveats), for example this won't work well on network filesystems and Docker host mounts.
+AVA uses `fs.watch()`. Support for `recursive` mode is required. Note that this has only become available on Linux since Node.js 20. [Other caveats apply](https://nodejs.org/api/fs.html#caveats), for example this won't work well on network filesystems and Docker host mounts.
## Ignoring changes
By default AVA watches for changes to all files, except for those with a `.snap.md` extension, `ava.config.*` and files in [certain directories](https://github.com/novemberborn/ignore-by-default/blob/master/index.js) as provided by the [`ignore-by-default`] package.
-With AVA 5, you can configure additional patterns for files to ignore in the [`ava` section of your `package.json`, or `ava.config.*` file][config], using the `ignoredByWatcher` key.
-
-With AVA 6, place these patterns within the `watchMode` object:
+You can configure additional patterns for files to ignore in the [`ava` section of your `package.json`, or `ava.config.*` file][config], using the `ignoreChanges` key within the `watchMode` object:
```js
export default {
@@ -55,9 +38,7 @@ If your tests write to disk they may trigger the watcher to rerun your tests. Co
AVA tracks which source files your test files depend on. If you change such a dependency only the test file that depends on it will be rerun. AVA will rerun all tests if it cannot determine which test file depends on the changed source file.
-AVA 5 (and the `ava5+chokidar` watcher in AVA 6) spies on `require()` calls to track dependencies. Custom extensions and transpilers are supported, provided you [added them in your `package.json` or `ava.config.*` file][config], and not from inside your test file.
-
-With AVA 6, dependency tracking works for `require()` and `import` syntax, as supported by [@vercel/nft](https://github.com/vercel/nft). `import()` is supported but dynamic paths such as `import(myVariable)` are not.
+Dependency tracking works for `require()` and `import` syntax, as supported by [@vercel/nft](https://github.com/vercel/nft). `import()` is supported but dynamic paths such as `import(myVariable)` are not.
Files accessed using the `fs` module are not tracked.
diff --git a/docs/recipes/when-to-use-plan.md b/docs/recipes/when-to-use-plan.md
index ac0f5b007..997109ca5 100644
--- a/docs/recipes/when-to-use-plan.md
+++ b/docs/recipes/when-to-use-plan.md
@@ -98,8 +98,8 @@ As stated in the previous example, using the `t.throws()` assertion with `async`
In most cases, it's a bad idea to use any complex branching inside your tests. A notable exception is for tests that are auto-generated (perhaps from a JSON document). Below `t.plan()` is used to ensure the correctness of the JSON input:
```js
-import fs from 'fs';
-import path from 'path';
+import fs from 'node:fs';
+import path from 'node:path';
const testData = JSON.parse(fs.readFileSync(new URL('./fixtures/test-definitions.json', import.meta.url)));
diff --git a/entrypoints/internal.d.mts b/entrypoints/internal.d.mts
new file mode 100644
index 000000000..8afc573ea
--- /dev/null
+++ b/entrypoints/internal.d.mts
@@ -0,0 +1,7 @@
+import type {StateChangeEvent} from '../types/state-change-events.d.cts';
+
+export type Event = StateChangeEvent;
+
+export type ObservedRun = {
+ events: AsyncIterableIterator;
+};
diff --git a/entrypoints/main.d.mts b/entrypoints/main.d.mts
index d4fcdc160..6b4fb27ca 100644
--- a/entrypoints/main.d.mts
+++ b/entrypoints/main.d.mts
@@ -10,3 +10,11 @@ declare const test: TestFn;
/** Call to declare a test, or chain to declare hooks or test modifiers */
export default test;
+
+/**
+ * Register a function to be called when AVA has completed a test run without uncaught exceptions or unhandled rejections.
+ *
+ * Completion handlers are invoked in order of registration. Results are not awaited.
+ */
+declare const registerCompletionHandler: (handler: () => void) => void;
+export {registerCompletionHandler};
diff --git a/entrypoints/main.mjs b/entrypoints/main.mjs
index 36b076bb6..fec379316 100644
--- a/entrypoints/main.mjs
+++ b/entrypoints/main.mjs
@@ -1 +1,2 @@
export {default} from '../lib/worker/main.cjs';
+export {registerCompletionHandler} from '../lib/worker/completion-handlers.js';
diff --git a/lib/api-event-iterator.js b/lib/api-event-iterator.js
new file mode 100644
index 000000000..1b2b55bf1
--- /dev/null
+++ b/lib/api-event-iterator.js
@@ -0,0 +1,12 @@
+export async function * asyncEventIteratorFromApi(api) {
+ // TODO: support multiple runs (watch mode)
+ const {value: plan} = await api.events('run').next();
+
+ for await (const stateChange of plan.status.events('stateChange')) {
+ yield stateChange;
+
+ if (stateChange.type === 'end' || stateChange.type === 'interrupt') {
+ break;
+ }
+ }
+}
diff --git a/lib/api.js b/lib/api.js
index 202a127ea..ff0f0f74c 100644
--- a/lib/api.js
+++ b/lib/api.js
@@ -303,15 +303,11 @@ export default class Api extends Emittery {
// Allow shared workers to clean up before the run ends.
await Promise.all(deregisteredSharedWorkers);
const files = scheduler.storeFailedTestFiles(runStatus, this.options.cacheEnabled === false ? null : this._createCacheDir());
- runStatus.emitStateChange({type: 'touched-files', files});
- } catch (error) {
- if (error?.name === 'AggregateError') {
- for (const error_ of error.errors) {
- runStatus.emitStateChange({type: 'internal-error', err: serializeError('Internal error', false, error_)});
- }
- } else {
- runStatus.emitStateChange({type: 'internal-error', err: serializeError('Internal error', false, error)});
+ if (files) {
+ runStatus.emitStateChange({type: 'touched-files', files});
}
+ } catch (error) {
+ runStatus.emitStateChange({type: 'internal-error', err: serializeError(error)});
}
timeoutTrigger.discard();
diff --git a/lib/assert.js b/lib/assert.js
index 149a255d6..8d7bf6582 100644
--- a/lib/assert.js
+++ b/lib/assert.js
@@ -35,54 +35,49 @@ const notImplemented = () => {
};
export class AssertionError extends Error {
- constructor(options) {
- super(options.message ?? '');
+ constructor(message = '', {
+ assertion,
+ assertionStack = getAssertionStack(AssertionError),
+ formattedDetails = [],
+ improperUsage = null,
+ cause,
+ } = {}) {
+ super(message, {cause});
this.name = 'AssertionError';
- this.assertion = options.assertion;
- this.fixedSource = options.fixedSource;
- this.improperUsage = options.improperUsage ?? false;
- this.actualStack = options.actualStack;
- this.operator = options.operator;
- this.values = options.values ?? [];
-
- // Raw expected and actual objects are stored for custom reporters
- // (such as wallaby.js), that manage worker processes directly and
- // use the values for custom diff views
- this.raw = options.raw;
-
- this.savedError = options.savedError ?? getErrorWithLongStackTrace();
+ this.assertion = assertion;
+ this.assertionStack = assertionStack;
+ this.improperUsage = improperUsage;
+ this.formattedDetails = formattedDetails;
}
}
-export function checkAssertionMessage(assertion, message) {
+export function checkAssertionMessage(message, assertion) {
if (message === undefined || typeof message === 'string') {
return true;
}
- return new AssertionError({
+ return new AssertionError('The assertion message must be a string', {
assertion,
- improperUsage: true,
- message: 'The assertion message must be a string',
- values: [formatWithLabel('Called with:', message)],
+ formattedDetails: [formatWithLabel('Called with:', message)],
});
}
-function getErrorWithLongStackTrace() {
- const limitBefore = Error.stackTraceLimit;
+export function getAssertionStack(constructorOpt = getAssertionStack) {
+ const {stackTraceLimit: limitBefore} = Error;
Error.stackTraceLimit = Number.POSITIVE_INFINITY;
- const error = new Error(); // eslint-disable-line unicorn/error-message
+ const temporary = {};
+ Error.captureStackTrace(temporary, constructorOpt);
Error.stackTraceLimit = limitBefore;
- return error;
+ return temporary.stack;
}
function validateExpectations(assertion, expectations, numberArgs) { // eslint-disable-line complexity
if (numberArgs === 1 || expectations === null || expectations === undefined) {
if (expectations === null) {
- throw new AssertionError({
+ throw new AssertionError(`The second argument to \`${assertion}\` must be an expectation object or \`undefined\``, {
assertion,
- message: `The second argument to \`t.${assertion}()\` must be an expectation object or \`undefined\``,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
@@ -95,17 +90,15 @@ function validateExpectations(assertion, expectations, numberArgs) { // eslint-d
|| Array.isArray(expectations)
|| Object.keys(expectations).length === 0
) {
- throw new AssertionError({
+ throw new AssertionError(`The second argument to \`${assertion}\` must be an expectation object, \`null\` or \`undefined\``, {
assertion,
- message: `The second argument to \`t.${assertion}()\` must be an expectation object, \`null\` or \`undefined\``,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
} else {
if (Object.hasOwn(expectations, 'instanceOf') && typeof expectations.instanceOf !== 'function') {
- throw new AssertionError({
+ throw new AssertionError(`The \`instanceOf\` property of the second argument to \`${assertion}\` must be a function`, {
assertion,
- message: `The \`instanceOf\` property of the second argument to \`t.${assertion}()\` must be a function`,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
@@ -115,26 +108,30 @@ function validateExpectations(assertion, expectations, numberArgs) { // eslint-d
&& !(expectations.message instanceof RegExp)
&& !(typeof expectations.message === 'function')
) {
- throw new AssertionError({
+ throw new AssertionError(`The \`message\` property of the second argument to \`${assertion}\` must be a string, regular expression or a function`, {
assertion,
- message: `The \`message\` property of the second argument to \`t.${assertion}()\` must be a string, regular expression or a function`,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
if (Object.hasOwn(expectations, 'name') && typeof expectations.name !== 'string') {
- throw new AssertionError({
+ throw new AssertionError(`The \`name\` property of the second argument to \`${assertion}\` must be a string`, {
assertion,
- message: `The \`name\` property of the second argument to \`t.${assertion}()\` must be a string`,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
if (Object.hasOwn(expectations, 'code') && typeof expectations.code !== 'string' && typeof expectations.code !== 'number') {
- throw new AssertionError({
+ throw new AssertionError(`The \`code\` property of the second argument to \`${assertion}\` must be a string or number`, {
assertion,
- message: `The \`code\` property of the second argument to \`t.${assertion}()\` must be a string or number`,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
+ });
+ }
+
+ if (Object.hasOwn(expectations, 'any') && typeof expectations.any !== 'boolean') {
+ throw new AssertionError(`The \`any\` property of the second argument to \`${assertion}\` must be a boolean`, {
+ assertion,
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
@@ -144,15 +141,15 @@ function validateExpectations(assertion, expectations, numberArgs) { // eslint-d
case 'is':
case 'message':
case 'name':
- case 'code': {
+ case 'code':
+ case 'any': {
continue;
}
default: {
- throw new AssertionError({
+ throw new AssertionError(`The second argument to \`${assertion}\` contains unexpected properties`, {
assertion,
- message: `The second argument to \`t.${assertion}()\` contains unexpected properties`,
- values: [formatWithLabel('Called with:', expectations)],
+ formattedDetails: [formatWithLabel('Called with:', expectations)],
});
}
}
@@ -164,25 +161,23 @@ function validateExpectations(assertion, expectations, numberArgs) { // eslint-d
// Note: this function *must* throw exceptions, since it can be used
// as part of a pending assertion for promises.
-function assertExpectations({assertion, actual, expectations, message, prefix, savedError}) {
- if (!isNativeError(actual)) {
- throw new AssertionError({
+function assertExpectations({actual, expectations, message, prefix, assertion, assertionStack}) {
+ const allowThrowAnything = Object.hasOwn(expectations, 'any') && expectations.any;
+ if (!isNativeError(actual) && !allowThrowAnything) {
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- values: [formatWithLabel(`${prefix} exception that is not an error:`, actual)],
+ assertionStack,
+ cause: actual,
+ formattedDetails: [formatWithLabel(`${prefix} exception that is not an error:`, actual)],
});
}
- const actualStack = actual.stack;
-
if (Object.hasOwn(expectations, 'is') && actual !== expectations.is) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected to be strictly equal to:', expectations.is),
],
@@ -190,12 +185,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (expectations.instanceOf && !(actual instanceof expectations.instanceOf)) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected instance of:', expectations.instanceOf),
],
@@ -203,12 +197,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (typeof expectations.name === 'string' && actual.name !== expectations.name) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected name to equal:', expectations.name),
],
@@ -216,12 +209,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (typeof expectations.message === 'string' && actual.message !== expectations.message) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected message to equal:', expectations.message),
],
@@ -229,12 +221,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (expectations.message instanceof RegExp && !expectations.message.test(actual.message)) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected message to match:', expectations.message),
],
@@ -242,12 +233,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (typeof expectations.message === 'function' && expectations.message(actual.message) === false) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected message to return true:', expectations.message),
],
@@ -255,12 +245,11 @@ function assertExpectations({assertion, actual, expectations, message, prefix, s
}
if (expectations.code !== undefined && actual.code !== expectations.code) {
- throw new AssertionError({
+ throw new AssertionError(message, {
assertion,
- message,
- savedError,
- actualStack,
- values: [
+ assertionStack,
+ cause: actual,
+ formattedDetails: [
formatWithLabel(`${prefix} unexpected exception:`, actual),
formatWithLabel('Expected code to equal:', expectations.code),
],
@@ -273,6 +262,7 @@ export class Assertions {
pass = notImplemented,
pending = notImplemented,
fail = notImplemented,
+ failPending = notImplemented,
skip = notImplemented,
compareWithSnapshot = notImplemented,
experiments = {},
@@ -283,42 +273,28 @@ export class Assertions {
return assertionFn;
};
- const checkMessage = (assertion, message) => {
- const result = checkAssertionMessage(assertion, message);
- if (result === true) {
- return true;
+ const assertMessage = (message, assertion) => {
+ const result = checkAssertionMessage(message, assertion);
+ if (result !== true) {
+ throw fail(result);
}
-
- fail(result);
- return false;
};
- this.pass = withSkip(() => {
- pass();
- return true;
- });
+ this.pass = withSkip(() => pass());
this.fail = withSkip(message => {
- if (!checkMessage('fail', message)) {
- return false;
- }
+ assertMessage(message, 't.fail()');
- fail(new AssertionError({
- assertion: 'fail',
- message: message ?? 'Test failed via `t.fail()`',
+ throw fail(new AssertionError(message ?? 'Test failed via `t.fail()`', {
+ assertion: 't.fail()',
}));
-
- return false;
});
this.is = withSkip((actual, expected, message) => {
- if (!checkMessage('is', message)) {
- return false;
- }
+ assertMessage(message, 't.is()');
if (Object.is(actual, expected)) {
- pass();
- return true;
+ return pass();
}
const result = concordance.compare(actual, expected, concordanceOptions);
@@ -326,99 +302,70 @@ export class Assertions {
const expectedDescriptor = result.expected ?? concordance.describe(expected, concordanceOptions);
if (result.pass) {
- fail(new AssertionError({
- assertion: 'is',
- message,
- raw: {actual, expected},
- values: [formatDescriptorWithLabel('Values are deeply equal to each other, but they are not the same:', actualDescriptor)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.is()',
+ formattedDetails: [formatDescriptorWithLabel('Values are deeply equal to each other, but they are not the same:', actualDescriptor)],
}));
} else {
- fail(new AssertionError({
- assertion: 'is',
- message,
- raw: {actual, expected},
- values: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.is()',
+ formattedDetails: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
}));
}
-
- return false;
});
this.not = withSkip((actual, expected, message) => {
- if (!checkMessage('not', message)) {
- return false;
- }
+ assertMessage(message, 't.not()');
if (Object.is(actual, expected)) {
- fail(new AssertionError({
- assertion: 'not',
- message,
- raw: {actual, expected},
- values: [formatWithLabel('Value is the same as:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.not()',
+ formattedDetails: [formatWithLabel('Value is the same as:', actual)],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.deepEqual = withSkip((actual, expected, message) => {
- if (!checkMessage('deepEqual', message)) {
- return false;
- }
+ assertMessage(message, 't.deepEqual()');
const result = concordance.compare(actual, expected, concordanceOptions);
if (result.pass) {
- pass();
- return true;
+ return pass();
}
const actualDescriptor = result.actual ?? concordance.describe(actual, concordanceOptions);
const expectedDescriptor = result.expected ?? concordance.describe(expected, concordanceOptions);
- fail(new AssertionError({
- assertion: 'deepEqual',
- message,
- raw: {actual, expected},
- values: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.deepEqual()',
+ formattedDetails: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
}));
- return false;
});
this.notDeepEqual = withSkip((actual, expected, message) => {
- if (!checkMessage('notDeepEqual', message)) {
- return false;
- }
+ assertMessage(message, 't.notDeepEqual()');
const result = concordance.compare(actual, expected, concordanceOptions);
if (result.pass) {
const actualDescriptor = result.actual ?? concordance.describe(actual, concordanceOptions);
- fail(new AssertionError({
- assertion: 'notDeepEqual',
- message,
- raw: {actual, expected},
- values: [formatDescriptorWithLabel('Value is deeply equal:', actualDescriptor)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.notDeepEqual()',
+ formattedDetails: [formatDescriptorWithLabel('Value is deeply equal:', actualDescriptor)],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.like = withSkip((actual, selector, message) => {
- if (!checkMessage('like', message)) {
- return false;
- }
+ assertMessage(message, 't.like()');
if (!isLikeSelector(selector)) {
- fail(new AssertionError({
- assertion: 'like',
- improperUsage: true,
- message: '`t.like()` selector must be a non-empty object',
- values: [formatWithLabel('Called with:', selector)],
+ throw fail(new AssertionError('`t.like()` selector must be a non-empty object', {
+ assertion: 't.like()',
+ formattedDetails: [formatWithLabel('Called with:', selector)],
}));
- return false;
}
let comparable;
@@ -426,13 +373,10 @@ export class Assertions {
comparable = selectComparable(actual, selector);
} catch (error) {
if (error === CIRCULAR_SELECTOR) {
- fail(new AssertionError({
- assertion: 'like',
- improperUsage: true,
- message: '`t.like()` selector must not contain circular references',
- values: [formatWithLabel('Called with:', selector)],
+ throw fail(new AssertionError('`t.like()` selector must not contain circular references', {
+ assertion: 't.like()',
+ formattedDetails: [formatWithLabel('Called with:', selector)],
}));
- return false;
}
throw error;
@@ -440,19 +384,15 @@ export class Assertions {
const result = concordance.compare(comparable, selector, concordanceOptions);
if (result.pass) {
- pass();
- return true;
+ return pass();
}
const actualDescriptor = result.actual ?? concordance.describe(comparable, concordanceOptions);
const expectedDescriptor = result.expected ?? concordance.describe(selector, concordanceOptions);
- fail(new AssertionError({
- assertion: 'like',
- message,
- values: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.like()',
+ formattedDetails: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)],
}));
-
- return false;
});
this.throws = withSkip((...args) => {
@@ -461,25 +401,20 @@ export class Assertions {
// to the function.
let [fn, expectations, message] = args;
- if (!checkMessage('throws', message)) {
- return;
- }
+ assertMessage(message, 't.throws()');
if (typeof fn !== 'function') {
- fail(new AssertionError({
- assertion: 'throws',
- improperUsage: true,
- message: '`t.throws()` must be called with a function',
- values: [formatWithLabel('Called with:', fn)],
+ throw fail(new AssertionError('`t.throws()` must be called with a function', {
+ assertion: 't.throws()',
+ improperUsage: {assertion: 'throws'},
+ formattedDetails: [formatWithLabel('Called with:', fn)],
}));
- return;
}
try {
- expectations = validateExpectations('throws', expectations, args.length, experiments);
+ expectations = validateExpectations('t.throws()', expectations, args.length, experiments);
} catch (error) {
- fail(error);
- return;
+ throw fail(error);
}
let retval;
@@ -489,29 +424,25 @@ export class Assertions {
if (isPromise(retval)) {
// Here isPromise() checks if something is "promise like". Cast to an actual promise.
Promise.resolve(retval).catch(noop);
- fail(new AssertionError({
- assertion: 'throws',
- message,
- values: [formatWithLabel('Function returned a promise. Use `t.throwsAsync()` instead:', retval)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.throws()',
+ formattedDetails: [formatWithLabel('Function returned a promise. Use `t.throwsAsync()` instead:', retval)],
}));
- return;
}
} catch (error) {
actual = error;
}
if (!actual) {
- fail(new AssertionError({
- assertion: 'throws',
- message,
- values: [formatWithLabel('Function returned:', retval)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.throws()',
+ formattedDetails: [formatWithLabel('Function returned:', retval)],
}));
- return;
}
try {
assertExpectations({
- assertion: 'throws',
+ assertion: 't.throws()',
actual,
expectations,
message,
@@ -520,63 +451,62 @@ export class Assertions {
pass();
return actual;
} catch (error) {
- fail(error);
+ throw fail(error);
}
});
this.throwsAsync = withSkip(async (...args) => {
let [thrower, expectations, message] = args;
- if (!checkMessage('throwsAsync', message)) {
- return;
+ try {
+ assertMessage(message, 't.throwsAsync()');
+ } catch (error) {
+ Promise.resolve(thrower).catch(noop);
+ throw error;
}
if (typeof thrower !== 'function' && !isPromise(thrower)) {
- fail(new AssertionError({
- assertion: 'throwsAsync',
- improperUsage: true,
- message: '`t.throwsAsync()` must be called with a function or promise',
- values: [formatWithLabel('Called with:', thrower)],
+ throw fail(new AssertionError('`t.throwsAsync()` must be called with a function or promise', {
+ assertion: 't.throwsAsync()',
+ formattedDetails: [formatWithLabel('Called with:', thrower)],
}));
- return;
}
try {
- expectations = validateExpectations('throwsAsync', expectations, args.length, experiments);
+ expectations = validateExpectations('t.throwsAsync()', expectations, args.length, experiments);
} catch (error) {
- fail(error);
- return;
+ Promise.resolve(thrower).catch(noop);
+ throw fail(error);
}
const handlePromise = async (promise, wasReturned) => {
- // Create an error object to record the stack before it gets lost in the promise chain.
- const savedError = getErrorWithLongStackTrace();
+ // Record the stack before it gets lost in the promise chain.
+ const assertionStack = getAssertionStack();
// Handle "promise like" objects by casting to a real Promise.
const intermediate = Promise.resolve(promise).then(value => {
- throw new AssertionError({
- assertion: 'throwsAsync',
- message,
- savedError,
- values: [formatWithLabel(`${wasReturned ? 'Returned promise' : 'Promise'} resolved with:`, value)],
- });
+ throw failPending(new AssertionError(message, {
+ assertion: 't.throwsAsync()',
+ assertionStack,
+ formattedDetails: [formatWithLabel(`${wasReturned ? 'Returned promise' : 'Promise'} resolved with:`, value)],
+ }));
}, error => {
- assertExpectations({
- assertion: 'throwsAsync',
- actual: error,
- expectations,
- message,
- prefix: `${wasReturned ? 'Returned promise' : 'Promise'} rejected with`,
- savedError,
- });
- return error;
+ try {
+ assertExpectations({
+ assertion: 't.throwsAsync()',
+ actual: error,
+ expectations,
+ message,
+ prefix: `${wasReturned ? 'Returned promise' : 'Promise'} rejected with`,
+ assertionStack,
+ });
+ return error;
+ } catch (error_) {
+ throw failPending(error_);
+ }
});
pending(intermediate);
- try {
- return await intermediate;
- } catch {
- // Don't reject the returned promise, even if the assertion fails.
- }
+ return intermediate;
};
if (isPromise(thrower)) {
@@ -592,90 +522,77 @@ export class Assertions {
}
if (actual) {
- fail(new AssertionError({
- assertion: 'throwsAsync',
- message,
- actualStack: actual.stack,
- values: [formatWithLabel('Function threw synchronously. Use `t.throws()` instead:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.throwsAsync()',
+ cause: actual,
+ formattedDetails: [formatWithLabel('Function threw synchronously. Use `t.throws()` instead:', actual)],
}));
- return;
}
if (isPromise(retval)) {
return handlePromise(retval, true);
}
- fail(new AssertionError({
- assertion: 'throwsAsync',
- message,
- values: [formatWithLabel('Function returned:', retval)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.throwsAsync()',
+ formattedDetails: [formatWithLabel('Function returned:', retval)],
}));
});
this.notThrows = withSkip((fn, message) => {
- if (!checkMessage('notThrows', message)) {
- return;
- }
+ assertMessage(message, 't.notThrows()');
if (typeof fn !== 'function') {
- fail(new AssertionError({
- assertion: 'notThrows',
- improperUsage: true,
- message: '`t.notThrows()` must be called with a function',
- values: [formatWithLabel('Called with:', fn)],
+ throw fail(new AssertionError('`t.notThrows()` must be called with a function', {
+ assertion: 't.notThrows()',
+ improperUsage: {assertion: 'notThrows'},
+ formattedDetails: [formatWithLabel('Called with:', fn)],
}));
- return;
}
try {
fn();
} catch (error) {
- fail(new AssertionError({
- assertion: 'notThrows',
- message,
- actualStack: error.stack,
- values: [formatWithLabel('Function threw:', error)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.notThrows()',
+ cause: error,
+ formattedDetails: [formatWithLabel('Function threw:', error)],
}));
- return;
}
- pass();
+ return pass();
});
- this.notThrowsAsync = withSkip((nonThrower, message) => {
- if (!checkMessage('notThrowsAsync', message)) {
- return Promise.resolve();
+ this.notThrowsAsync = withSkip(async (nonThrower, message) => {
+ try {
+ assertMessage(message, 't.notThrowsAsync()');
+ } catch (error) {
+ Promise.resolve(nonThrower).catch(noop);
+ throw error;
}
if (typeof nonThrower !== 'function' && !isPromise(nonThrower)) {
- fail(new AssertionError({
- assertion: 'notThrowsAsync',
- improperUsage: true,
- message: '`t.notThrowsAsync()` must be called with a function or promise',
- values: [formatWithLabel('Called with:', nonThrower)],
+ throw fail(new AssertionError('`t.notThrowsAsync()` must be called with a function or promise', {
+ assertion: 't.notThrowsAsync()',
+ formattedDetails: [formatWithLabel('Called with:', nonThrower)],
}));
- return Promise.resolve();
}
const handlePromise = async (promise, wasReturned) => {
// Create an error object to record the stack before it gets lost in the promise chain.
- const savedError = getErrorWithLongStackTrace();
+ const assertionStack = getAssertionStack();
// Handle "promise like" objects by casting to a real Promise.
const intermediate = Promise.resolve(promise).then(noop, error => {
- throw new AssertionError({
- assertion: 'notThrowsAsync',
- message,
- savedError,
- values: [formatWithLabel(`${wasReturned ? 'Returned promise' : 'Promise'} rejected with:`, error)],
- });
+ throw failPending(new AssertionError(message, {
+ assertion: 't.notThrowsAsync()',
+ assertionStack,
+ formattedDetails: [formatWithLabel(`${wasReturned ? 'Returned promise' : 'Promise'} rejected with:`, error)],
+ }));
});
pending(intermediate);
- try {
- return await intermediate;
- } catch {
- // Don't reject the returned promise, even if the assertion fails.
- }
+ await intermediate;
+ return true;
};
if (isPromise(nonThrower)) {
@@ -686,22 +603,18 @@ export class Assertions {
try {
retval = nonThrower();
} catch (error) {
- fail(new AssertionError({
- assertion: 'notThrowsAsync',
- message,
- actualStack: error.stack,
- values: [formatWithLabel('Function threw:', error)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.notThrowsAsync()',
+ cause: error,
+ formattedDetails: [formatWithLabel('Function threw:', error)],
}));
- return Promise.resolve();
}
if (!isPromise(retval)) {
- fail(new AssertionError({
- assertion: 'notThrowsAsync',
- message,
- values: [formatWithLabel('Function did not return a promise. Use `t.notThrows()` instead:', retval)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.notThrowsAsync()',
+ formattedDetails: [formatWithLabel('Function did not return a promise. Use `t.notThrows()` instead:', retval)],
}));
- return Promise.resolve();
}
return handlePromise(retval, true);
@@ -709,36 +622,18 @@ export class Assertions {
this.snapshot = withSkip((expected, message) => {
if (disableSnapshots) {
- fail(new AssertionError({
- assertion: 'snapshot',
- message: '`t.snapshot()` can only be used in tests',
- improperUsage: true,
+ throw fail(new AssertionError('`t.snapshot()` can only be used in tests', {
+ assertion: 't.snapshot()',
}));
- return false;
}
- if (message?.id !== undefined) {
- fail(new AssertionError({
- assertion: 'snapshot',
- message: 'AVA 4 no longer supports snapshot IDs',
- improperUsage: true,
- values: [formatWithLabel('Called with id:', message.id)],
- }));
- return false;
- }
-
- if (!checkMessage('snapshot', message)) {
- return false;
- }
+ assertMessage(message, 't.snapshot()');
if (message === '') {
- fail(new AssertionError({
- assertion: 'snapshot',
- improperUsage: true,
- message: 'The snapshot assertion message must be a non-empty string',
- values: [formatWithLabel('Called with:', message)],
+ throw fail(new AssertionError('The snapshot assertion message must be a non-empty string', {
+ assertion: 't.snapshot()',
+ formattedDetails: [formatWithLabel('Called with:', message)],
}));
- return false;
}
let result;
@@ -749,215 +644,158 @@ export class Assertions {
throw error;
}
- const improperUsage = {name: error.name, snapPath: error.snapPath};
+ const improperUsage = {assertion: 'snapshot', name: error.name, snapPath: error.snapPath};
if (error instanceof VersionMismatchError) {
improperUsage.snapVersion = error.snapVersion;
improperUsage.expectedVersion = error.expectedVersion;
}
- fail(new AssertionError({
- assertion: 'snapshot',
- message: message ?? 'Could not compare snapshot',
+ throw fail(new AssertionError(message ?? 'Could not compare snapshot', {
+ asssertion: 't.snapshot()',
improperUsage,
}));
- return false;
}
if (result.pass) {
- pass();
- return true;
+ return pass();
}
if (result.actual) {
- fail(new AssertionError({
- assertion: 'snapshot',
- message: message ?? 'Did not match snapshot',
- values: [formatDescriptorDiff(result.actual, result.expected, {invert: true})],
+ throw fail(new AssertionError(message ?? 'Did not match snapshot', {
+ assertion: 't.snapshot()',
+ formattedDetails: [formatDescriptorDiff(result.actual, result.expected, {invert: true})],
}));
} else {
// This can only occur in CI environments.
- fail(new AssertionError({
- assertion: 'snapshot',
- message: message ?? 'No snapshot available — new snapshots are not created in CI environments',
+ throw fail(new AssertionError(message ?? 'No snapshot available — new snapshots are not created in CI environments', {
+ assertion: 't.snapshot()',
}));
}
-
- return false;
});
this.truthy = withSkip((actual, message) => {
- if (!checkMessage('truthy', message)) {
- return false;
- }
+ assertMessage(message, 't.truthy()');
if (actual) {
- pass();
- return true;
+ return pass();
}
- fail(new AssertionError({
- assertion: 'truthy',
- message,
- operator: '!!',
- values: [formatWithLabel('Value is not truthy:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.truthy()',
+ formattedDetails: [formatWithLabel('Value is not truthy:', actual)],
}));
- return false;
});
this.falsy = withSkip((actual, message) => {
- if (!checkMessage('falsy', message)) {
- return false;
- }
+ assertMessage(message, 't.falsy()');
if (actual) {
- fail(new AssertionError({
- assertion: 'falsy',
- message,
- operator: '!',
- values: [formatWithLabel('Value is not falsy:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.falsy()',
+ formattedDetails: [formatWithLabel('Value is not falsy:', actual)],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.true = withSkip((actual, message) => {
- if (!checkMessage('true', message)) {
- return false;
- }
+ assertMessage(message, 't.true()');
if (actual === true) {
- pass();
- return true;
+ return pass();
}
- fail(new AssertionError({
- assertion: 'true',
- message,
- values: [formatWithLabel('Value is not `true`:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.true()',
+ formattedDetails: [formatWithLabel('Value is not `true`:', actual)],
}));
- return false;
});
this.false = withSkip((actual, message) => {
- if (!checkMessage('false', message)) {
- return false;
- }
+ assertMessage(message, 't.false()');
if (actual === false) {
- pass();
- return true;
+ return pass();
}
- fail(new AssertionError({
- assertion: 'false',
- message,
- values: [formatWithLabel('Value is not `false`:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.false()',
+ formattedDetails: [formatWithLabel('Value is not `false`:', actual)],
}));
- return false;
});
this.regex = withSkip((string, regex, message) => {
- if (!checkMessage('regex', message)) {
- return false;
- }
+ assertMessage(message, 't.regex()');
if (typeof string !== 'string') {
- fail(new AssertionError({
- assertion: 'regex',
- improperUsage: true,
- message: '`t.regex()` must be called with a string',
- values: [formatWithLabel('Called with:', string)],
+ throw fail(new AssertionError('`t.regex()` must be called with a string', {
+ assertion: 't.regex()',
+ formattedDetails: [formatWithLabel('Called with:', string)],
}));
- return false;
}
if (!(regex instanceof RegExp)) {
- fail(new AssertionError({
- assertion: 'regex',
- improperUsage: true,
- message: '`t.regex()` must be called with a regular expression',
- values: [formatWithLabel('Called with:', regex)],
+ throw fail(new AssertionError('`t.regex()` must be called with a regular expression', {
+ assertion: 't.regex()',
+ formattedDetails: [formatWithLabel('Called with:', regex)],
}));
- return false;
}
if (!regex.test(string)) {
- fail(new AssertionError({
- assertion: 'regex',
- message,
- values: [
+ throw fail(new AssertionError(message, {
+ assertion: 't.regex()',
+ formattedDetails: [
formatWithLabel('Value must match expression:', string),
formatWithLabel('Regular expression:', regex),
],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.notRegex = withSkip((string, regex, message) => {
- if (!checkMessage('notRegex', message)) {
- return false;
- }
+ assertMessage(message, 't.notRegex()');
if (typeof string !== 'string') {
- fail(new AssertionError({
- assertion: 'notRegex',
- improperUsage: true,
- message: '`t.notRegex()` must be called with a string',
- values: [formatWithLabel('Called with:', string)],
+ throw fail(new AssertionError('`t.notRegex()` must be called with a string', {
+ assertion: 't.notRegex()',
+ formattedDetails: [formatWithLabel('Called with:', string)],
}));
- return false;
}
if (!(regex instanceof RegExp)) {
- fail(new AssertionError({
- assertion: 'notRegex',
- improperUsage: true,
- message: '`t.notRegex()` must be called with a regular expression',
- values: [formatWithLabel('Called with:', regex)],
+ throw fail(new AssertionError('`t.notRegex()` must be called with a regular expression', {
+ assertion: 't.notRegex()',
+ formattedDetails: [formatWithLabel('Called with:', regex)],
}));
- return false;
}
if (regex.test(string)) {
- fail(new AssertionError({
- assertion: 'notRegex',
- message,
- values: [
+ throw fail(new AssertionError(message, {
+ assertion: 't.notRegex()',
+ formattedDetails: [
formatWithLabel('Value must not match expression:', string),
formatWithLabel('Regular expression:', regex),
],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.assert = withSkip((actual, message) => {
- if (!checkMessage('assert', message)) {
- return false;
- }
+ assertMessage(message, 't.assert()');
if (!actual) {
- fail(new AssertionError({
- assertion: 'assert',
- message,
- operator: '!!',
- values: [formatWithLabel('Value is not truthy:', actual)],
+ throw fail(new AssertionError(message, {
+ assertion: 't.assert()',
+ formattedDetails: [formatWithLabel('Value is not truthy:', actual)],
}));
- return false;
}
- pass();
- return true;
+ return pass();
});
this.unorderedEqual = withSkip((actual, expected, message) => {
diff --git a/lib/ava5-watcher.js b/lib/ava5-watcher.js
deleted file mode 100644
index 643b11cf3..000000000
--- a/lib/ava5-watcher.js
+++ /dev/null
@@ -1,453 +0,0 @@
-import nodePath from 'node:path';
-
-import chokidar from 'chokidar';
-import createDebug from 'debug';
-
-import {chalk} from './chalk.js';
-import {applyTestFileFilter, classifyAva5Watcher as classify, getChokidarIgnorePatterns} from './globs.js';
-
-const debug = createDebug('ava:watcher');
-
-function rethrowAsync(error) {
- // Don't swallow exceptions. Note that any
- // expected error should already have been logged
- setImmediate(() => {
- throw error;
- });
-}
-
-const MIN_DEBOUNCE_DELAY = 10;
-const INITIAL_DEBOUNCE_DELAY = 100;
-const END_MESSAGE = chalk.gray('Type `r` and press enter to rerun tests\nType `u` and press enter to update snapshots\n');
-
-class Debouncer {
- constructor(watcher) {
- this.watcher = watcher;
- this.timer = null;
- this.repeat = false;
- }
-
- debounce(delay) {
- if (this.timer) {
- this.again = true;
- return;
- }
-
- delay = delay ? Math.max(delay, MIN_DEBOUNCE_DELAY) : INITIAL_DEBOUNCE_DELAY;
-
- const timer = setTimeout(async () => {
- await this.watcher.busy;
- // Do nothing if debouncing was canceled while waiting for the busy
- // promise to fulfil
- if (this.timer !== timer) {
- return;
- }
-
- if (this.again) {
- this.timer = null;
- this.again = false;
- this.debounce(delay / 2);
- } else {
- this.watcher.runAfterChanges();
- this.timer = null;
- this.again = false;
- }
- }, delay);
-
- this.timer = timer;
- }
-
- cancel() {
- if (this.timer) {
- clearTimeout(this.timer);
- this.timer = null;
- this.again = false;
- }
- }
-}
-
-class TestDependency {
- constructor(file, dependencies) {
- this.file = file;
- this.dependencies = dependencies;
- }
-
- contains(dependency) {
- return this.dependencies.includes(dependency);
- }
-}
-
-export default class Watcher {
- constructor({api, filter = [], globs, projectDir, providers, reporter}) {
- this.debouncer = new Debouncer(this);
-
- this.runVector = 0;
- this.previousFiles = [];
- this.globs = {cwd: projectDir, ...globs};
-
- const patternFilters = filter.map(({pattern}) => pattern);
-
- this.providers = providers;
- this.run = (specificFiles = [], updateSnapshots = false) => {
- this.runVector++;
-
- let runOnlyExclusive = false;
- if (specificFiles.length > 0) {
- const exclusiveFiles = specificFiles.filter(file => this.filesWithExclusiveTests.includes(file));
- runOnlyExclusive = exclusiveFiles.length !== this.filesWithExclusiveTests.length;
- if (runOnlyExclusive) {
- // The test files that previously contained exclusive tests are always
- // run, together with the remaining specific files.
- const remainingFiles = specificFiles.filter(file => !exclusiveFiles.includes(file));
- specificFiles = [...this.filesWithExclusiveTests, ...remainingFiles];
- }
-
- if (filter.length > 0) {
- specificFiles = applyTestFileFilter({
- cwd: projectDir,
- expandDirectories: false,
- filter: patternFilters,
- testFiles: specificFiles,
- treatFilterPatternsAsFiles: false,
- });
- }
-
- this.pruneFailures(specificFiles);
- }
-
- this.touchedFiles.clear();
- this.previousFiles = specificFiles;
- this.busy = api.run({
- files: specificFiles,
- filter,
- runtimeOptions: {
- previousFailures: this.sumPreviousFailures(this.runVector),
- runOnlyExclusive,
- firstRun: this.runVector === 1,
- updateSnapshots: updateSnapshots === true,
- },
- })
- .then(() => {
- reporter.endRun();
- reporter.lineWriter.writeLine(END_MESSAGE);
- })
- .catch(rethrowAsync);
- };
-
- this.testDependencies = [];
- this.trackTestDependencies(api);
-
- this.temporaryFiles = new Set();
- this.touchedFiles = new Set();
- this.trackTouchedFiles(api);
-
- this.filesWithExclusiveTests = [];
- this.trackExclusivity(api);
-
- this.filesWithFailures = [];
- this.trackFailures(api);
-
- this.dirtyStates = {};
- this.watchFiles();
- this.rerunAll();
- }
-
- watchFiles() {
- chokidar.watch(['**/*'], {
- cwd: this.globs.cwd,
- ignored: getChokidarIgnorePatterns(this.globs),
- ignoreInitial: true,
- }).on('all', (event, path) => {
- if (event === 'add' || event === 'change' || event === 'unlink') {
- debug('Detected %s of %s', event, path);
- this.dirtyStates[nodePath.join(this.globs.cwd, path)] = event;
- this.debouncer.debounce();
- }
- });
- }
-
- trackTestDependencies(api) {
- api.on('run', plan => {
- plan.status.on('stateChange', evt => {
- let dependencies;
- if (evt.type === 'dependencies') {
- dependencies = evt.dependencies;
- } else if (evt.type === 'accessed-snapshots') {
- dependencies = [evt.filename];
- } else {
- return;
- }
-
- dependencies = dependencies.filter(filePath => {
- const {isIgnoredByWatcher} = classify(filePath, this.globs);
- return !isIgnoredByWatcher;
- });
- this.updateTestDependencies(evt.testFile, dependencies);
- });
- });
- }
-
- updateTestDependencies(file, dependencies) {
- // Ensure the rewritten test file path is included in the dependencies,
- // since changes to non-rewritten paths are ignored.
- for (const {main} of this.providers) {
- const rewritten = main.resolveTestFile(file);
- if (!dependencies.includes(rewritten)) {
- dependencies = [rewritten, ...dependencies];
- }
- }
-
- if (dependencies.length === 0) {
- this.testDependencies = this.testDependencies.filter(dep => dep.file !== file);
- return;
- }
-
- const isUpdate = this.testDependencies.some(dep => {
- if (dep.file !== file) {
- return false;
- }
-
- dep.dependencies = dependencies;
-
- return true;
- });
-
- if (!isUpdate) {
- this.testDependencies.push(new TestDependency(file, dependencies));
- }
- }
-
- trackTouchedFiles(api) {
- api.on('run', plan => {
- plan.status.on('stateChange', evt => {
- if (evt.type !== 'touched-files') {
- return;
- }
-
- for (const file of evt.files.changedFiles) {
- this.touchedFiles.add(file);
- }
-
- for (const file of evt.files.temporaryFiles) {
- this.temporaryFiles.add(file);
- }
- });
- });
- }
-
- trackExclusivity(api) {
- api.on('run', plan => {
- plan.status.on('stateChange', evt => {
- if (evt.type !== 'worker-finished') {
- return;
- }
-
- const fileStats = plan.status.stats.byFile.get(evt.testFile);
- const ranExclusiveTests = fileStats.selectedTests > 0 && fileStats.declaredTests > fileStats.selectedTests;
- this.updateExclusivity(evt.testFile, ranExclusiveTests);
- });
- });
- }
-
- updateExclusivity(file, hasExclusiveTests) {
- const index = this.filesWithExclusiveTests.indexOf(file);
-
- if (hasExclusiveTests && index === -1) {
- this.filesWithExclusiveTests.push(file);
- } else if (!hasExclusiveTests && index !== -1) {
- this.filesWithExclusiveTests.splice(index, 1);
- }
- }
-
- trackFailures(api) {
- api.on('run', plan => {
- this.pruneFailures(plan.files);
-
- const currentVector = this.runVector;
- plan.status.on('stateChange', evt => {
- if (!evt.testFile) {
- return;
- }
-
- switch (evt.type) {
- case 'hook-failed':
- case 'internal-error':
- case 'process-exit':
- case 'test-failed':
- case 'uncaught-exception':
- case 'unhandled-rejection':
- case 'worker-failed': {
- this.countFailure(evt.testFile, currentVector);
- break;
- }
-
- default: {
- break;
- }
- }
- });
- });
- }
-
- pruneFailures(files) {
- const toPrune = new Set(files);
- this.filesWithFailures = this.filesWithFailures.filter(state => !toPrune.has(state.file));
- }
-
- countFailure(file, vector) {
- const isUpdate = this.filesWithFailures.some(state => {
- if (state.file !== file) {
- return false;
- }
-
- state.count++;
- return true;
- });
-
- if (!isUpdate) {
- this.filesWithFailures.push({
- file,
- vector,
- count: 1,
- });
- }
- }
-
- sumPreviousFailures(beforeVector) {
- let total = 0;
-
- for (const state of this.filesWithFailures) {
- if (state.vector < beforeVector) {
- total += state.count;
- }
- }
-
- return total;
- }
-
- cleanUnlinkedTests(unlinkedTests) {
- for (const testFile of unlinkedTests) {
- this.updateTestDependencies(testFile, []);
- this.updateExclusivity(testFile, false);
- this.pruneFailures([testFile]);
- }
- }
-
- observeStdin(stdin) {
- stdin.resume();
- stdin.setEncoding('utf8');
-
- stdin.on('data', async data => {
- data = data.trim().toLowerCase();
- if (data !== 'r' && data !== 'rs' && data !== 'u') {
- return;
- }
-
- // Cancel the debouncer, it might rerun specific tests whereas *all* tests
- // need to be rerun
- this.debouncer.cancel();
- await this.busy;
- // Cancel the debouncer again, it might have restarted while waiting for
- // the busy promise to fulfil
- this.debouncer.cancel();
- if (data === 'u') {
- this.updatePreviousSnapshots();
- } else {
- this.rerunAll();
- }
- });
- }
-
- rerunAll() {
- this.dirtyStates = {};
- this.run();
- }
-
- updatePreviousSnapshots() {
- this.dirtyStates = {};
- this.run(this.previousFiles, true);
- }
-
- runAfterChanges() {
- const {dirtyStates} = this;
- this.dirtyStates = {};
-
- let dirtyPaths = Object.keys(dirtyStates).filter(path => {
- if (this.touchedFiles.has(path)) {
- debug('Ignoring known touched file %s', path);
- this.touchedFiles.delete(path);
- return false;
- }
-
- // Unlike touched files, temporary files are never cleared. We may see
- // adds and unlinks detected separately, so we track the temporary files
- // as long as AVA is running.
- if (this.temporaryFiles.has(path)) {
- debug('Ignoring known temporary file %s', path);
- return false;
- }
-
- return true;
- });
-
- for (const {main} of this.providers) {
- dirtyPaths = dirtyPaths.filter(path => {
- if (main.ignoreChange(path)) {
- debug('Ignoring changed file %s', path);
- return false;
- }
-
- return true;
- });
- }
-
- const dirtyHelpersAndSources = [];
- const addedOrChangedTests = [];
- const unlinkedTests = [];
- for (const filePath of dirtyPaths) {
- const {isIgnoredByWatcher, isTest} = classify(filePath, this.globs);
- if (!isIgnoredByWatcher) {
- if (isTest) {
- if (dirtyStates[filePath] === 'unlink') {
- unlinkedTests.push(filePath);
- } else {
- addedOrChangedTests.push(filePath);
- }
- } else {
- dirtyHelpersAndSources.push(filePath);
- }
- }
- }
-
- this.cleanUnlinkedTests(unlinkedTests);
-
- // No need to rerun tests if the only change is that tests were deleted
- if (unlinkedTests.length === dirtyPaths.length) {
- return;
- }
-
- if (dirtyHelpersAndSources.length === 0) {
- // Run any new or changed tests
- this.run(addedOrChangedTests);
- return;
- }
-
- // Try to find tests that depend on the changed source files
- const testsByHelpersOrSource = dirtyHelpersAndSources.map(path => this.testDependencies.filter(dep => dep.contains(path)).map(dep => {
- debug('%s is a dependency of %s', path, dep.file);
- return dep.file;
- })).filter(tests => tests.length > 0);
-
- // Rerun all tests if source files were changed that could not be traced to
- // specific tests
- if (testsByHelpersOrSource.length !== dirtyHelpersAndSources.length) {
- debug('Files remain that cannot be traced to specific tests: %O', dirtyHelpersAndSources);
- debug('Rerunning all tests');
- this.run();
- return;
- }
-
- // Run all affected tests
- this.run([...new Set([addedOrChangedTests, testsByHelpersOrSource].flat(2))]);
- }
-}
diff --git a/lib/cli.js b/lib/cli.js
index 002a40b6a..e517acc6e 100644
--- a/lib/cli.js
+++ b/lib/cli.js
@@ -6,8 +6,9 @@ import v8 from 'node:v8';
import arrify from 'arrify';
import figures from 'figures';
import yargs from 'yargs';
-import {hideBin} from 'yargs/helpers'; // eslint-disable-line n/file-extension-in-import
+import {hideBin} from 'yargs/helpers';
+import {asyncEventIteratorFromApi} from './api-event-iterator.js';
import Api from './api.js';
import {chalk} from './chalk.js';
import validateEnvironmentVariables from './environment-variables.js';
@@ -345,7 +346,7 @@ export default async function loadCli() { // eslint-disable-line complexity
if (Object.hasOwn(conf, 'typescript')) {
const {default: providerManager} = await import('./provider-manager.js');
try {
- const {identifier: protocol, level, main} = await providerManager.typescript(projectDir, {fullConfig: conf});
+ const {identifier: protocol, level, main} = await providerManager.typescript(projectDir);
providers.push({
level,
protocol,
@@ -417,7 +418,6 @@ export default async function loadCli() { // eslint-disable-line complexity
concurrency: combined.concurrency ?? 0,
workerThreads: combined.workerThreads !== false,
debug,
- enableAva5DependencyTracking: argv.watch && conf.watchMode?.implementation === 'ava5+chokidar',
environmentVariables,
experiments,
extensions,
@@ -471,6 +471,12 @@ export default async function loadCli() { // eslint-disable-line complexity
});
}
+ if (combined.observeRun && experiments.observeRunsFromConfig) {
+ combined.observeRun({
+ events: asyncEventIteratorFromApi(api),
+ });
+ }
+
api.on('run', plan => {
reporter.startRun(plan);
@@ -489,52 +495,35 @@ export default async function loadCli() { // eslint-disable-line complexity
});
if (argv.watch) {
- if (Object.hasOwn(conf, 'watchMode') && Object.hasOwn(conf.watchMode, 'implementation')) {
- if (conf.watchMode.implementation === 'ava5+chokidar') {
- const {default: Watcher} = await import('./ava5-watcher.js');
- const watcher = new Watcher({
- api,
- filter,
- globs,
- projectDir,
- providers,
- reporter,
- });
- watcher.observeStdin(process.stdin);
- } else {
- exit('The ’watchMode.implementation’ option must be set to “ava5+chokidar”');
- }
- } else {
- const {available, start} = await import('./watcher.js');
- if (!available(projectDir)) {
- exit('Watch mode requires support for recursive fs.watch()');
- return;
- }
-
- let abortController;
- if (process.env.TEST_AVA) {
- const {takeCoverage} = await import('node:v8');
- abortController = new AbortController();
- process.on('message', message => {
- if (message === 'abort-watcher') {
- abortController.abort();
- takeCoverage();
- }
- });
- process.channel?.unref();
- }
+ const {available, start} = await import('./watcher.js');
+ if (!available(projectDir)) {
+ exit('Watch mode requires support for recursive fs.watch()');
+ return;
+ }
- start({
- api,
- filter,
- globs,
- projectDir,
- providers,
- reporter,
- stdin: process.stdin,
- signal: abortController.signal,
+ let abortController;
+ if (process.env.TEST_AVA) {
+ const {takeCoverage} = await import('node:v8');
+ abortController = new AbortController();
+ process.on('message', message => {
+ if (message === 'abort-watcher') {
+ abortController.abort();
+ takeCoverage();
+ }
});
+ process.channel?.unref();
}
+
+ start({
+ api,
+ filter,
+ globs,
+ projectDir,
+ providers,
+ reporter,
+ stdin: process.stdin,
+ signal: abortController?.signal,
+ });
} else {
let debugWithoutSpecificFile = false;
api.on('run', plan => {
diff --git a/lib/fork.js b/lib/fork.js
index 554ec343a..8317774ff 100644
--- a/lib/fork.js
+++ b/lib/fork.js
@@ -122,11 +122,6 @@ export default function loadFork(file, options, execArgv = process.execArgv) {
break;
}
- case 'ping': {
- send({type: 'pong'});
- break;
- }
-
default: {
emitStateChange(message.ava);
}
@@ -134,7 +129,7 @@ export default function loadFork(file, options, execArgv = process.execArgv) {
});
worker.on('error', error => {
- emitStateChange({type: 'worker-failed', err: serializeError('Worker error', false, tagWorkerError(error), file)});
+ emitStateChange({type: 'worker-failed', err: serializeError(tagWorkerError(error))});
finish();
});
diff --git a/lib/glob-helpers.cjs b/lib/glob-helpers.cjs
index 5c869e5b9..2c10b589c 100644
--- a/lib/glob-helpers.cjs
+++ b/lib/glob-helpers.cjs
@@ -16,8 +16,6 @@ const defaultPicomatchIgnorePatterns = [
...defaultIgnorePatterns.map(pattern => `${pattern}/**/*`),
];
-const defaultMatchNoIgnore = picomatch(defaultPicomatchIgnorePatterns);
-
const matchingCache = new WeakMap();
const processMatchingPatterns = input => {
let result = matchingCache.get(input);
@@ -55,22 +53,6 @@ function classify(file, {cwd, extensions, filePatterns}) {
exports.classify = classify;
-const matchesIgnorePatterns = (file, patterns) => {
- const {matchNoIgnore} = processMatchingPatterns(patterns);
- return matchNoIgnore(file) || defaultMatchNoIgnore(file);
-};
-
-function classifyAva5Watcher(file, {cwd, extensions, filePatterns, ignoredByWatcherPatterns}) {
- file = normalizeFileForMatching(cwd, file);
- return {
- isIgnoredByWatcher: matchesIgnorePatterns(file, ignoredByWatcherPatterns),
- isTest: hasExtension(extensions, file) && !isHelperish(file) && filePatterns.length > 0 && matches(file, filePatterns),
- };
-}
-
-// TODO: Delete along with ava5+chokidar watcher.
-exports.classifyAva5Watcher = classifyAva5Watcher;
-
const hasExtension = (extensions, file) => extensions.includes(path.extname(file).slice(1));
exports.hasExtension = hasExtension;
diff --git a/lib/globs.js b/lib/globs.js
index c789dcc97..1c0d6c602 100644
--- a/lib/globs.js
+++ b/lib/globs.js
@@ -14,7 +14,6 @@ import {
export {
classify,
- classifyAva5Watcher,
isHelperish,
matches,
normalizePattern,
@@ -128,14 +127,6 @@ export async function findTests({cwd, extensions, filePatterns}) {
return files.filter(file => !path.basename(file).startsWith('_'));
}
-// TODO: Delete along with ava5+chokidar watcher.
-export function getChokidarIgnorePatterns({ignoredByWatcherPatterns}) {
- return [
- ...defaultIgnorePatterns.map(pattern => `${pattern}/**/*`),
- ...ignoredByWatcherPatterns.filter(pattern => !pattern.startsWith('!')),
- ];
-}
-
export function buildIgnoreMatcher({ignoredByWatcherPatterns}) {
const patterns = [
...defaultIgnorePatterns.map(pattern => `${pattern}/**/*`),
diff --git a/lib/line-numbers.js b/lib/line-numbers.js
index 24a6e1f36..22dfd92af 100644
--- a/lib/line-numbers.js
+++ b/lib/line-numbers.js
@@ -13,7 +13,7 @@ const sortNumbersAscending = array => {
};
const parseNumber = string => Number.parseInt(string, 10);
-const removeAllWhitespace = string => string.replace(/\s/g, '');
+const removeAllWhitespace = string => string.replaceAll(/\s/g, '');
const range = (start, end) => Array.from({length: end - start + 1}).fill(start).map((element, index) => element + index);
const parseLineNumbers = suffix => sortNumbersAscending(distinctArray(
diff --git a/lib/load-config.js b/lib/load-config.js
index 9994629a6..73c1af3f0 100644
--- a/lib/load-config.js
+++ b/lib/load-config.js
@@ -4,11 +4,11 @@ import process from 'node:process';
import url from 'node:url';
import {isPlainObject} from 'is-plain-object';
-import {packageConfig, packageJsonPath} from 'pkg-conf';
+import {packageConfig, packageJsonPath} from 'package-config';
const NO_SUCH_FILE = Symbol('no ava.config.js file');
const MISSING_DEFAULT_EXPORT = Symbol('missing default export');
-const EXPERIMENTS = new Set();
+const EXPERIMENTS = new Set(['observeRunsFromConfig']);
const importConfig = async ({configFile, fileForErrorMessage}) => {
const {default: config = MISSING_DEFAULT_EXPORT} = await import(url.pathToFileURL(configFile));
diff --git a/lib/parse-test-args.js b/lib/parse-test-args.js
index 02c6e16ae..5e3082389 100644
--- a/lib/parse-test-args.js
+++ b/lib/parse-test-args.js
@@ -2,7 +2,7 @@ const buildTitle = (raw, implementation, args) => {
let value = implementation?.title?.(raw, ...args) ?? raw;
const isValid = typeof value === 'string';
if (isValid) {
- value = value.trim().replace(/\s+/g, ' ');
+ value = value.trim().replaceAll(/\s+/g, ' ');
}
return {
diff --git a/lib/plugin-support/shared-workers.js b/lib/plugin-support/shared-workers.js
index 6b92ff4c5..827ea52cb 100644
--- a/lib/plugin-support/shared-workers.js
+++ b/lib/plugin-support/shared-workers.js
@@ -97,7 +97,7 @@ export async function observeWorkerProcess(fork, runStatus) {
launched.statePromises.error.then(error => {
launched.worker.off('message', handleWorkerMessage);
removeAllInstances();
- runStatus.emitStateChange({type: 'shared-worker-error', err: serializeError('Shared worker error', true, error)});
+ runStatus.emitStateChange({type: 'shared-worker-error', err: serializeError(error)});
signalError();
});
diff --git a/lib/provider-manager.js b/lib/provider-manager.js
index eaf4220a2..5285dbccb 100644
--- a/lib/provider-manager.js
+++ b/lib/provider-manager.js
@@ -4,12 +4,10 @@ import pkg from './pkg.cjs';
export const levels = {
// As the protocol changes, comparing levels by integer allows AVA to be
// compatible with different versions.
- ava3Stable: 1,
- ava6: 2,
+ ava6: 1,
};
const levelsByProtocol = Object.assign(Object.create(null), {
- 'ava-3.2': levels.ava3Stable,
'ava-6': levels.ava6,
});
@@ -51,15 +49,8 @@ async function load(providerModule, projectDir, selectProtocol = () => true) {
}
const providerManager = {
- async typescript(projectDir, {fullConfig, protocol}) {
- const legacy = fullConfig?.watchMode?.implementation === 'ava5+chokidar';
- return load('@ava/typescript', projectDir, identifier => {
- if (protocol === undefined) {
- return !legacy || identifier === 'ava-3.2';
- }
-
- return identifier === protocol;
- });
+ async typescript(projectDir, {protocol} = {}) {
+ return load('@ava/typescript', projectDir, identifier => protocol === undefined || identifier === protocol);
},
};
diff --git a/lib/reporters/beautify-stack.js b/lib/reporters/beautify-stack.js
index cb65eedb5..423400dc2 100644
--- a/lib/reporters/beautify-stack.js
+++ b/lib/reporters/beautify-stack.js
@@ -4,7 +4,6 @@ const stackUtils = new StackUtils({
ignoredPackages: [
'@ava/typescript',
'ava',
- 'nyc',
],
internals: [
// AVA internals, which ignoredPackages don't ignore when we run our own unit tests.
diff --git a/lib/reporters/default.js b/lib/reporters/default.js
index 80f0263d8..a70f24e4e 100644
--- a/lib/reporters/default.js
+++ b/lib/reporters/default.js
@@ -208,9 +208,7 @@ export default class Reporter {
this.write(colors.error(`${figures.cross} Internal error`));
}
- this.lineWriter.writeLine(colors.stack(event.err.summary));
- this.lineWriter.writeLine(colors.errorStack(event.err.stack));
- this.lineWriter.writeLine();
+ this.writeSerializedError(event.err);
this.lineWriter.writeLine();
break;
@@ -221,8 +219,7 @@ export default class Reporter {
this.write(colors.information(`${figures.warning} Could not parse ${this.relativeFile(event.testFile)} for line number selection`));
this.lineWriter.writeLine();
- this.lineWriter.writeLine(colors.errorStack(event.err.stack));
- this.lineWriter.writeLine();
+ this.writeSerializedError(event.err);
break;
}
@@ -268,7 +265,7 @@ export default class Reporter {
this.lineWriter.ensureEmptyLine();
this.lineWriter.writeLine(colors.error(`${figures.cross} Error in shared worker`));
this.lineWriter.writeLine();
- this.writeErr(event);
+ this.writeSerializedError(event.err);
break;
}
@@ -279,7 +276,7 @@ export default class Reporter {
this.lineWriter.ensureEmptyLine();
this.lineWriter.writeLine(colors.title(`Uncaught exception in ${this.relativeFile(event.testFile)}`));
this.lineWriter.writeLine();
- this.writeErr(event);
+ this.writeSerializedError(event.err);
break;
}
@@ -290,7 +287,7 @@ export default class Reporter {
this.lineWriter.ensureEmptyLine();
this.lineWriter.writeLine(colors.title(`Unhandled rejection in ${this.relativeFile(event.testFile)}`));
this.lineWriter.writeLine();
- this.writeErr(event);
+ this.writeSerializedError(event.err);
break;
}
@@ -304,7 +301,7 @@ export default class Reporter {
if (event.err) {
this.lineWriter.writeLine(colors.error(`${figures.cross} ${this.relativeFile(event.testFile)} exited due to an error:`));
this.lineWriter.writeLine();
- this.writeErr(event);
+ this.writeSerializedError(event.err);
} else if (event.nonZeroExitCode) {
this.lineWriter.writeLine(colors.error(`${figures.cross} ${this.relativeFile(event.testFile)} exited with a non-zero exit code: ${event.nonZeroExitCode}`));
} else {
@@ -341,7 +338,7 @@ export default class Reporter {
// we multiplex stdout and stderr into a single stream. However as
// long as stdStream is different from reportStream users can read
// their original output by redirecting the streams.
- if (event.chunk[event.chunk.length - 1] !== 0x0A) {
+ if (event.chunk.at(-1) !== 0x0A) {
this.reportStream.write(os.EOL);
}
@@ -356,7 +353,7 @@ export default class Reporter {
// we multiplex stdout and stderr into a single stream. However as
// long as stdStream is different from reportStream users can read
// their original output by redirecting the streams.
- if (event.chunk[event.chunk.length - 1] !== 0x0A) {
+ if (event.chunk.at(-1) !== 0x0A) {
this.reportStream.write(os.EOL);
}
}
@@ -366,6 +363,7 @@ export default class Reporter {
writePendingTests(evt) {
for (const [file, testsInFile] of evt.pendingTests) {
if (testsInFile.size === 0) {
+ this.lineWriter.writeLine(`Failed to exit when running ${this.relativeFile(file)}\n`);
continue;
}
@@ -427,16 +425,32 @@ export default class Reporter {
this.lineWriter.writeLine(string);
}
- writeErr(event) {
- if (event.err.name === 'TSError' && event.err.object?.diagnosticText) {
- this.lineWriter.writeLine(colors.errorStack(event.err.object.diagnosticText));
+ writeSerializedError(error) { // eslint-disable-line complexity
+ if (error.type === 'aggregate') {
+ for (const error_ of error.errors) {
+ this.writeSerializedError(error_);
+ }
+
+ return;
+ }
+
+ if (error.type === 'unknown') {
+ this.lineWriter.writeLine(error.formattedError);
this.lineWriter.writeLine();
return;
}
- if (event.err.source) {
- this.lineWriter.writeLine(colors.errorSource(`${this.relativeFile(event.err.source.file)}:${event.err.source.line}`));
- const excerpt = codeExcerpt(event.err.source, {maxWidth: this.reportStream.columns - 2});
+ if (error.type === 'native' && error.name === 'TSError' && error.originalError.diagnosticText) {
+ this.lineWriter.writeLine(colors.errorStack(error.originalError.diagnosticText));
+ this.lineWriter.writeLine();
+ return;
+ }
+
+ const hasSource = error.source !== null;
+ if (hasSource) {
+ const {source} = error;
+ this.lineWriter.writeLine(colors.errorSource(`${this.relativeFile(source.file)}:${source.line}`));
+ const excerpt = codeExcerpt(source, {maxWidth: this.reportStream.columns - 2});
if (excerpt) {
this.lineWriter.writeLine();
this.lineWriter.writeLine(excerpt);
@@ -444,10 +458,47 @@ export default class Reporter {
}
}
- if (event.err.avaAssertionError) {
- const result = formatSerializedError(event.err);
+ let summary = '';
+ let printStack = true;
+ if (error.type === 'native') {
+ const lines = error.stack.split('\n');
+
+ // SyntaxError stacks may begin with the offending code. Write all stack
+ // lines up to and including one that begins with SyntaxError.
+ if (error.name === 'SyntaxError') {
+ for (const line of lines) {
+ summary += line + '\n';
+ if (line.startsWith('SyntaxError')) {
+ break;
+ }
+ }
+
+ printStack = summary === '';
+ } else {
+ // Handle multi-line error messages.
+ for (let index = 0; index < lines.length; index++) {
+ if (/^\s+at/.test(lines[index])) {
+ break;
+ }
+
+ const next = index + 1;
+ const end = next === lines.length || /^\s+at/.test(lines[next]);
+ summary += end ? lines[index] : lines[index] + '\n';
+ }
+ }
+
+ if (summary !== '') {
+ this.lineWriter.writeLine(summary.trim());
+ this.lineWriter.writeLine();
+ }
+ }
+
+ if (error.type === 'ava') {
+ const {formattedDetails, improperUsage, message} = error;
+
+ const result = formatSerializedError(formattedDetails, message);
if (result.printMessage) {
- this.lineWriter.writeLine(event.err.message);
+ this.lineWriter.writeLine(message);
this.lineWriter.writeLine();
}
@@ -456,33 +507,29 @@ export default class Reporter {
this.lineWriter.writeLine();
}
- const message = improperUsageMessage(event.err);
- if (message) {
- this.lineWriter.writeLine(message);
+ const usageMessage = improperUsageMessage(improperUsage);
+ if (usageMessage) {
+ this.lineWriter.writeLine(usageMessage);
this.lineWriter.writeLine();
}
- } else if (event.err.nonErrorObject) {
- this.lineWriter.writeLine(event.err.formatted);
- this.lineWriter.writeLine();
- } else {
- this.lineWriter.writeLine(event.err.summary);
- this.lineWriter.writeLine();
}
- const formatted = this.formatErrorStack(event.err);
- if (formatted.length > 0) {
- this.lineWriter.writeLine(formatted.join('\n'));
- this.lineWriter.writeLine();
+ if (printStack) {
+ const formattedStack = this.formatErrorStack(error.stack, hasSource);
+ if (formattedStack.length > 0) {
+ this.lineWriter.writeLine(formattedStack.join('\n'));
+ this.lineWriter.writeLine();
+ }
}
}
- formatErrorStack(error) {
- if (!error.stack) {
+ formatErrorStack(stack, hasSource) {
+ if (stack === '') {
return [];
}
- if (error.shouldBeautifyStack) {
- return beautifyStack(error.stack).map(line => {
+ if (hasSource) {
+ return beautifyStack(stack).map(line => {
if (nodeInternals.some(internal => internal.test(line))) {
return colors.errorStackInternal(`${figures.pointerSmall} ${line}`);
}
@@ -491,7 +538,7 @@ export default class Reporter {
});
}
- return [error.stack];
+ return [colors.errorStack(stack)];
}
writeLogs(event, surroundLines) {
@@ -551,7 +598,7 @@ export default class Reporter {
this.lineWriter.writeLine();
}
- this.writeErr(event);
+ this.writeSerializedError(event.err);
}
endRun() {// eslint-disable-line complexity
@@ -602,7 +649,7 @@ export default class Reporter {
this.lineWriter.writeLine();
if (this.failures.length > 0) {
- const lastFailure = this.failures[this.failures.length - 1];
+ const lastFailure = this.failures.at(-1);
for (const event of this.failures) {
this.writeFailure(event);
if (event !== lastFailure) {
diff --git a/lib/reporters/format-serialized-error.js b/lib/reporters/format-serialized-error.js
index 617f65857..83c033a4f 100644
--- a/lib/reporters/format-serialized-error.js
+++ b/lib/reporters/format-serialized-error.js
@@ -1,14 +1,14 @@
-export default function formatSerializedError(error) {
- const printMessage = error.values.length === 0
- ? Boolean(error.message)
- : !error.values[0].label.startsWith(error.message);
+export default function formatSerializedError(formattedDetails, message) {
+ const printMessage = formattedDetails.length === 0
+ ? Boolean(message)
+ : !formattedDetails[0].label.startsWith(message);
- if (error.values.length === 0) {
+ if (formattedDetails.length === 0) {
return {formatted: null, printMessage};
}
let formatted = '';
- for (const value of error.values) {
+ for (const value of formattedDetails) {
formatted += `${value.label}\n\n${value.formatted}\n\n`;
}
diff --git a/lib/reporters/improper-usage-messages.js b/lib/reporters/improper-usage-messages.js
index 7c66e3ca9..b5b9f6ce2 100644
--- a/lib/reporters/improper-usage-messages.js
+++ b/lib/reporters/improper-usage-messages.js
@@ -1,12 +1,12 @@
import {chalk} from '../chalk.js';
import pkg from '../pkg.cjs';
-export default function buildMessage(error) {
- if (!error.improperUsage) {
+export default function buildMessage(improperUsage) {
+ if (!improperUsage) {
return null;
}
- const {assertion} = error;
+ const {assertion} = improperUsage;
if (assertion === 'throws' || assertion === 'notThrows') {
return `Try wrapping the first argument to \`t.${assertion}()\` in a function:
@@ -18,7 +18,7 @@ Visit the following URL for more details:
}
if (assertion === 'snapshot') {
- const {name, snapPath} = error.improperUsage;
+ const {name, snapPath} = improperUsage;
if (name === 'ChecksumError' || name === 'InvalidSnapshotError') {
return `The snapshot file is corrupted.
@@ -37,7 +37,7 @@ Please run AVA again with the ${chalk.cyan('--update-snapshots')} flag to upgrad
}
if (name === 'VersionMismatchError') {
- const {snapVersion, expectedVersion} = error.improperUsage;
+ const {snapVersion, expectedVersion} = improperUsage;
const upgradeMessage = snapVersion < expectedVersion
? `Please run AVA again with the ${chalk.cyan('--update-snapshots')} flag to upgrade.`
: 'You should upgrade AVA.';
diff --git a/lib/reporters/tap.js b/lib/reporters/tap.js
index 27e14a77d..258c927fc 100644
--- a/lib/reporters/tap.js
+++ b/lib/reporters/tap.js
@@ -6,43 +6,42 @@ import plur from 'plur';
import stripAnsi from 'strip-ansi';
import * as supertap from 'supertap';
-import beautifyStack from './beautify-stack.js';
import prefixTitle from './prefix-title.js';
-function dumpError(error) {
- const object = {...error.object};
- if (error.name) {
- object.name = error.name;
+function dumpError({
+ assertion,
+ formattedDetails,
+ formattedError,
+ name,
+ originalError, // A structured clone, so some details are missing.
+ stack,
+ type,
+}, sanitizeStackOutput) {
+ if (type === 'unknown') {
+ return {
+ message: 'Non-native error',
+ formatted: stripAnsi(formattedError),
+ };
}
- if (error.message) {
- object.message = error.message;
- }
-
- if (error.avaAssertionError) {
- if (error.assertion) {
- object.assertion = error.assertion;
- }
+ originalError.name = name; // Restore the original name.
- if (error.operator) {
- object.operator = error.operator;
+ if (type === 'ava') {
+ if (assertion) {
+ originalError.assertion = assertion;
}
- if (error.values.length > 0) {
- object.values = Object.fromEntries(error.values.map(({label, formatted}) => [stripAnsi(label), stripAnsi(formatted)]));
+ if (formattedDetails.length > 0) {
+ originalError.details = Object.fromEntries(formattedDetails.map(({label, formatted}) => [
+ stripAnsi(label),
+ stripAnsi(formatted),
+ ]));
}
}
- if (error.nonErrorObject) {
- object.message = 'Non-error object';
- object.formatted = stripAnsi(error.formatted);
- }
-
- if (error.stack) {
- object.at = error.shouldBeautifyStack ? beautifyStack(error.stack).join('\n') : error.stack;
- }
+ originalError.stack = sanitizeStackOutput?.(stack || originalError.stack) ?? (stack || originalError.stack);
- return object;
+ return originalError;
}
export default class TapReporter {
@@ -52,6 +51,7 @@ export default class TapReporter {
this.extensions = options.extensions;
this.stdStream = options.stdStream;
this.reportStream = options.reportStream;
+ this.sanitizeStackOutput = options.sanitizeStackOutput;
this.crashCount = 0;
this.filesWithMissingAvaImports = new Set();
@@ -98,7 +98,7 @@ export default class TapReporter {
writeTest(evt, flags) {
this.reportStream.write(supertap.test(this.prefixTitle(evt.testFile, evt.title), {
comment: evt.logs,
- error: evt.err ? dumpError(evt.err) : null,
+ error: evt.err ? dumpError(evt.err, this.sanitizeStackOutput) : null,
index: ++this.i,
passed: flags.passed,
skip: flags.skip,
@@ -108,9 +108,9 @@ export default class TapReporter {
writeCrash(evt, title) {
this.crashCount++;
- this.reportStream.write(supertap.test(title ?? evt.err.summary ?? evt.type, {
+ this.reportStream.write(supertap.test(title ?? evt.err.stack?.split('\n')[0].trim() ?? evt.err.message ?? evt.type, {
comment: evt.logs,
- error: evt.err ? dumpError(evt.err) : null,
+ error: evt.err ? dumpError(evt.err, this.sanitizeStackOutput) : null,
index: ++this.i,
passed: false,
skip: false,
@@ -122,7 +122,7 @@ export default class TapReporter {
this.reportStream.write(`# ${stripAnsi(title)}${os.EOL}`);
if (evt.logs) {
for (const log of evt.logs) {
- const logLines = indentString(log, 4).replace(/^ {4}/gm, '# ');
+ const logLines = indentString(log, 4).replaceAll(/^ {4}/gm, '# ');
this.reportStream.write(`${logLines}${os.EOL}`);
}
}
diff --git a/lib/run-status.js b/lib/run-status.js
index f58c9bcbc..ae6b68c4e 100644
--- a/lib/run-status.js
+++ b/lib/run-status.js
@@ -38,6 +38,7 @@ export default class RunStatus extends Emittery {
timeouts: 0,
todoTests: 0,
uncaughtExceptions: 0,
+ unexpectedProcessExits: 0,
unhandledRejections: 0,
};
}
@@ -56,6 +57,7 @@ export default class RunStatus extends Emittery {
skippedTests: 0,
todoTests: 0,
uncaughtExceptions: 0,
+ unexpectedProcessExits: 0,
unhandledRejections: 0,
...stats,
});
@@ -167,6 +169,8 @@ export default class RunStatus extends Emittery {
}
case 'process-exit': {
+ stats.unexpectedProcessExits++;
+ fileStats.unexpectedProcessExits++;
event.pendingTests = this.pendingTests;
event.pendingTestsLogs = this.pendingTestsLogs;
this.pendingTests = new Map();
@@ -193,6 +197,10 @@ export default class RunStatus extends Emittery {
case 'worker-finished': {
stats.finishedWorkers++;
+ if (this.pendingTests.get(event.testFile)?.size === 0) {
+ this.pendingTests.delete(event.testFile);
+ }
+
break;
}
@@ -233,6 +241,7 @@ export default class RunStatus extends Emittery {
|| this.stats.sharedWorkerErrors > 0
|| this.stats.timeouts > 0
|| this.stats.uncaughtExceptions > 0
+ || this.stats.unexpectedProcessExits > 0
|| this.stats.unhandledRejections > 0
) {
return 1;
diff --git a/lib/runner.js b/lib/runner.js
index 0ef356f7f..8c80f2271 100644
--- a/lib/runner.js
+++ b/lib/runner.js
@@ -123,14 +123,10 @@ export default class Runner extends Emittery {
todo: true,
});
} else {
- if (!implementation) {
+ if (typeof implementation !== 'function') {
throw new TypeError('Expected an implementation. Use `test.todo()` for tests without an implementation.');
}
- if (Array.isArray(implementation)) {
- throw new TypeError('AVA 4 no longer supports multiple implementations.');
- }
-
if (title.isSet && !title.isValid) {
throw new TypeError('Test & hook titles must be strings');
}
@@ -319,7 +315,7 @@ export default class Runner extends Emittery {
this.emit('stateChange', {
type: 'hook-failed',
title: result.title,
- err: serializeError('Hook failure', true, result.error),
+ err: serializeError(result.error, {testFile: this.file}),
duration: result.duration,
logs: result.logs,
});
@@ -387,7 +383,7 @@ export default class Runner extends Emittery {
this.emit('stateChange', {
type: 'test-failed',
title: result.title,
- err: serializeError('Test failure', true, result.error, this.file),
+ err: serializeError(result.error, {testFile: this.file}),
duration: result.duration,
knownFailing: result.metadata.failing,
logs: result.logs,
diff --git a/lib/serialize-error.js b/lib/serialize-error.js
index f89cee06e..ca47a6350 100644
--- a/lib/serialize-error.js
+++ b/lib/serialize-error.js
@@ -1,9 +1,7 @@
import path from 'node:path';
-import process from 'node:process';
-import {fileURLToPath, pathToFileURL} from 'node:url';
+import {pathToFileURL} from 'node:url';
import {isNativeError} from 'node:util/types';
-import cleanYamlObject from 'clean-yaml-object';
import concordance from 'concordance';
import StackUtils from 'stack-utils';
@@ -14,10 +12,6 @@ function isAvaAssertionError(source) {
return source instanceof AssertionError;
}
-function filter(propertyName, isRoot) {
- return !isRoot || (propertyName !== 'message' && propertyName !== 'name' && propertyName !== 'stack');
-}
-
function normalizeFile(file, ...base) {
return file.startsWith('file://') ? file : pathToFileURL(path.resolve(...base, file)).toString();
}
@@ -45,106 +39,6 @@ function extractSource(stack, testFile) {
return null;
}
-function buildSource(source) {
- if (!source) {
- return null;
- }
-
- // Assume the CWD is the project directory. This holds since this function
- // is only called in test workers, which are created with their working
- // directory set to the project directory.
- const projectDir = process.cwd();
-
- const file = normalizeFile(source.file.trim(), projectDir);
- const rel = path.relative(projectDir, fileURLToPath(file));
-
- const [segment] = rel.split(path.sep);
- const isWithinProject = segment !== '..' && (process.platform !== 'win32' || !segment.includes(':'));
- const isDependency = isWithinProject && path.dirname(rel).split(path.sep).includes('node_modules');
-
- return {
- isDependency,
- isWithinProject,
- file,
- line: source.line,
- };
-}
-
-function trySerializeError(error, shouldBeautifyStack, testFile) {
- const stack = error.savedError ? error.savedError.stack : error.stack;
-
- const retval = {
- avaAssertionError: isAvaAssertionError(error),
- nonErrorObject: false,
- source: extractSource(stack, testFile),
- stack,
- shouldBeautifyStack,
- };
-
- if (error.actualStack) {
- retval.stack = error.actualStack;
- }
-
- if (retval.avaAssertionError) {
- retval.improperUsage = error.improperUsage;
- retval.message = error.message;
- retval.name = error.name;
- retval.values = error.values;
-
- if (error.fixedSource) {
- const source = buildSource(error.fixedSource);
- if (source) {
- retval.source = source;
- }
- }
-
- if (error.assertion) {
- retval.assertion = error.assertion;
- }
-
- if (error.operator) {
- retval.operator = error.operator;
- }
- } else {
- retval.object = cleanYamlObject(error, filter); // Cleanly copy non-standard properties
- if (typeof error.message === 'string') {
- retval.message = error.message;
- }
-
- if (typeof error.name === 'string') {
- retval.name = error.name;
- }
- }
-
- if (typeof error.stack === 'string') {
- const lines = error.stack.split('\n');
- if (error.name === 'SyntaxError' && !lines[0].startsWith('SyntaxError')) {
- retval.summary = '';
- for (const line of lines) {
- retval.summary += line + '\n';
- if (line.startsWith('SyntaxError')) {
- break;
- }
- }
-
- retval.summary = retval.summary.trim();
- } else {
- retval.summary = '';
- for (let index = 0; index < lines.length; index++) {
- if (lines[index].startsWith(' at')) {
- break;
- }
-
- const next = index + 1;
- const end = next === lines.length || lines[next].startsWith(' at');
- retval.summary += end ? lines[index] : lines[index] + '\n';
- }
- }
- }
-
- return retval;
-}
-
const workerErrors = new WeakSet();
export function tagWorkerError(error) {
// Track worker errors, which aren't native due to https://github.com/nodejs/node/issues/48716.
@@ -158,26 +52,47 @@ export function tagWorkerError(error) {
const isWorkerError = error => workerErrors.has(error);
-export default function serializeError(origin, shouldBeautifyStack, error, testFile) {
+export default function serializeError(error, {testFile = null} = {}) {
if (!isNativeError(error) && !isWorkerError(error)) {
return {
- avaAssertionError: false,
- nonErrorObject: true,
- formatted: concordance.formatDescriptor(concordance.describe(error, concordanceOptions), concordanceOptions),
+ type: 'unknown',
+ originalError: error, // Note that the main process receives a structured clone.
+ formattedError: concordance.formatDescriptor(concordance.describe(error, concordanceOptions), concordanceOptions),
};
}
- try {
- return trySerializeError(error, shouldBeautifyStack, testFile);
- } catch {
- const replacement = new Error(`${origin}: Could not serialize error`);
+ const {message, name, stack} = error;
+ const base = {
+ message,
+ name,
+ originalError: error, // Note that the main process receives a structured clone.
+ stack,
+ };
+
+ if (!isAvaAssertionError(error)) {
+ if (name === 'AggregateError') {
+ return {
+ ...base,
+ type: 'aggregate',
+ errors: error.errors.map(error => serializeError(error, {testFile})),
+ };
+ }
+
return {
- avaAssertionError: false,
- nonErrorObject: false,
- name: replacement.name,
- message: replacement.message,
- stack: replacement.stack,
- summary: replacement.message,
+ ...base,
+ type: 'native',
+ source: extractSource(error.stack, testFile),
};
}
+
+ return {
+ ...base,
+ type: 'ava',
+ assertion: error.assertion,
+ improperUsage: error.improperUsage,
+ formattedCause: error.cause ? concordance.formatDescriptor(concordance.describe(error.cause, concordanceOptions), concordanceOptions) : null,
+ formattedDetails: error.formattedDetails,
+ source: extractSource(error.assertionStack, testFile),
+ stack: isNativeError(error.cause) ? error.cause.stack : error.assertionStack,
+ };
}
diff --git a/lib/slash.cjs b/lib/slash.cjs
index 4ed31e13b..418954c53 100644
--- a/lib/slash.cjs
+++ b/lib/slash.cjs
@@ -30,7 +30,7 @@ function slash(path) {
return path;
}
- return path.replace(/\\/g, '/');
+ return path.replaceAll('\\', '/');
}
module.exports = slash;
diff --git a/lib/snapshot-manager.js b/lib/snapshot-manager.js
index 0a52cd76a..1deb5a14a 100644
--- a/lib/snapshot-manager.js
+++ b/lib/snapshot-manager.js
@@ -9,7 +9,7 @@ import zlib from 'node:zlib';
import cbor from 'cbor';
import concordance from 'concordance';
import indentString from 'indent-string';
-import mem from 'mem';
+import memoize from 'memoize';
import writeFileAtomic from 'write-file-atomic';
import {snapshotManager as concordanceOptions} from './concordance-options.js';
@@ -104,7 +104,7 @@ function combineEntries({blocks}) {
const combined = new BufferBuilder();
for (const {title, snapshots} of blocks) {
- const last = snapshots[snapshots.length - 1];
+ const last = snapshots.at(-1);
combined.write(`\n\n## ${title}\n\n`);
for (const [index, snapshot] of snapshots.entries()) {
@@ -198,7 +198,7 @@ async function encodeSnapshots(snapshotData) {
], READABLE_PREFIX.byteLength + VERSION_HEADER.byteLength + SHA_256_HASH_LENGTH + compressed.byteLength);
}
-function decodeSnapshots(buffer, snapPath) {
+export function extractCompressedSnapshot(buffer, snapPath) {
if (isLegacySnapshot(buffer)) {
throw new LegacyError(snapPath);
}
@@ -220,6 +220,12 @@ function decodeSnapshots(buffer, snapPath) {
const compressedOffset = sha256sumOffset + SHA_256_HASH_LENGTH;
const compressed = buffer.slice(compressedOffset);
+ return {version, compressed, sha256sumOffset, compressedOffset};
+}
+
+function decodeSnapshots(buffer, snapPath) {
+ const {compressed, sha256sumOffset, compressedOffset} = extractCompressedSnapshot(buffer, snapPath);
+
const sha256sum = crypto.createHash('sha256').update(compressed).digest();
const expectedSum = buffer.slice(sha256sumOffset, compressedOffset);
if (!sha256sum.equals(expectedSum)) {
@@ -389,7 +395,7 @@ class Manager {
}
}
-const resolveSourceFile = mem(file => {
+const resolveSourceFile = memoize(file => {
const sourceMap = findSourceMap(file);
// Prior to Node.js 18.8.0, the value when a source map could not be found was `undefined`.
// This changed to `null` in . Check both.
@@ -407,7 +413,7 @@ const resolveSourceFile = mem(file => {
: payload.sources[0];
});
-export const determineSnapshotDir = mem(({file, fixedLocation, projectDir}) => {
+export const determineSnapshotDir = memoize(({file, fixedLocation, projectDir}) => {
const testDir = path.dirname(resolveSourceFile(file));
if (fixedLocation) {
const relativeTestLocation = path.relative(projectDir, testDir);
diff --git a/lib/test.js b/lib/test.js
index 40782171f..caccda844 100644
--- a/lib/test.js
+++ b/lib/test.js
@@ -2,7 +2,7 @@ import concordance from 'concordance';
import isPromise from 'is-promise';
import plur from 'plur';
-import {AssertionError, Assertions, checkAssertionMessage} from './assert.js';
+import {AssertionError, Assertions, checkAssertionMessage, getAssertionStack} from './assert.js';
import concordanceOptions from './concordance-options.js';
import nowAndTimers from './now-and-timers.cjs';
import parseTestArgs from './parse-test-args.js';
@@ -26,13 +26,12 @@ function formatErrorValue(label, error) {
return {label, formatted};
}
-const captureSavedError = () => {
- const limitBefore = Error.stackTraceLimit;
- Error.stackTraceLimit = 1;
- const error = new Error(); // eslint-disable-line unicorn/error-message
- Error.stackTraceLimit = limitBefore;
- return error;
-};
+class TestFailure extends Error {
+ constructor() {
+ super('The test has failed');
+ this.name = 'TestFailure';
+ }
+}
const testMap = new WeakMap();
class ExecutionContext extends Assertions {
@@ -40,12 +39,16 @@ class ExecutionContext extends Assertions {
super({
pass() {
test.countPassedAssertion();
+ return true;
},
pending(promise) {
test.addPendingAssertion(promise);
},
fail(error) {
- test.addFailedAssertion(error);
+ return test.addFailedAssertion(error);
+ },
+ failPending(error) {
+ return test.failPendingAssertion(error);
},
skip() {
test.countPassedAssertion();
@@ -70,7 +73,7 @@ class ExecutionContext extends Assertions {
};
this.plan = count => {
- test.plan(count, captureSavedError());
+ test.plan(count, getAssertionStack());
};
this.plan.skip = () => {};
@@ -96,14 +99,10 @@ class ExecutionContext extends Assertions {
const {args, implementation, title} = parseTestArgs(attemptArgs);
- if (!implementation) {
+ if (typeof implementation !== 'function') {
throw new TypeError('Expected an implementation.');
}
- if (Array.isArray(implementation)) {
- throw new TypeError('AVA 4 no longer supports t.try() with multiple implementations.');
- }
-
let attemptTitle;
if (!title.isSet || title.isEmpty) {
attemptTitle = `${test.title} ─ attempt ${test.attemptCount + 1}`;
@@ -134,7 +133,7 @@ class ExecutionContext extends Assertions {
if (discarded) {
test.saveFirstError(new Error('Can’t commit a result that was previously discarded'));
- return;
+ throw this.testFailure;
}
committed = true;
@@ -153,7 +152,7 @@ class ExecutionContext extends Assertions {
discard({retainLogs = false} = {}) {
if (committed) {
test.saveFirstError(new Error('Can’t discard a result that was previously committed'));
- return;
+ throw this.testFailure;
}
if (discarded) {
@@ -282,7 +281,7 @@ export default class Test {
};
this.assertCount = 0;
- this.assertError = undefined;
+ this.assertError = null;
this.attemptCount = 0;
this.calledEnd = false;
this.duration = null;
@@ -293,6 +292,7 @@ export default class Test {
this.pendingAttemptCount = 0;
this.planCount = null;
this.startedAt = 0;
+ this.testFailure = null;
this.timeoutTimer = null;
}
@@ -317,7 +317,7 @@ export default class Test {
this.logs.push(text);
}
- addPendingAssertion(promise) {
+ async addPendingAssertion(promise) {
if (this.finishing) {
this.saveFirstError(new Error('Assertion started, but test has already finished'));
}
@@ -330,12 +330,14 @@ export default class Test {
this.pendingAssertionCount++;
this.refreshTimeout();
- promise
- .catch(error => this.saveFirstError(error))
- .then(() => {
- this.pendingAssertionCount--;
- this.refreshTimeout();
- });
+ try {
+ await promise;
+ } catch {
+ // Ignore errors.
+ } finally {
+ this.pendingAssertionCount--;
+ this.refreshTimeout();
+ }
}
addFailedAssertion(error) {
@@ -350,6 +352,12 @@ export default class Test {
this.assertCount++;
this.refreshTimeout();
this.saveFirstError(error);
+ return this.testFailure;
+ }
+
+ failPendingAssertion(error) {
+ this.saveFirstError(error);
+ return this.testFailure;
}
finishAttempt({commit, deferredSnapshotRecordings, errors, logs, passed, retainLogs, snapshotCount, startingSnapshotCount}) {
@@ -388,15 +396,17 @@ export default class Test {
}
this.refreshTimeout();
+ if (this.testFailure) {
+ throw this.testFailure;
+ }
}
saveFirstError(error) {
- if (!this.assertError) {
- this.assertError = error;
- }
+ this.assertError ??= error;
+ this.testFailure = new TestFailure();
}
- plan(count, planError) {
+ plan(count, planAssertionStack) {
if (typeof count !== 'number') {
throw new TypeError('Expected a number');
}
@@ -405,11 +415,11 @@ export default class Test {
// In case the `planCount` doesn't match `assertCount, we need the stack of
// this function to throw with a useful stack.
- this.planError = planError;
+ this.planAssertionStack = planAssertionStack;
}
timeout(ms, message) {
- const result = checkAssertionMessage('timeout', message);
+ const result = checkAssertionMessage(message, 't.timeout()');
if (result !== true) {
this.saveFirstError(result);
// Allow the timeout to be set even when the message is invalid.
@@ -473,11 +483,9 @@ export default class Test {
verifyPlan() {
if (!this.assertError && this.planCount !== null && this.planCount !== this.assertCount) {
- this.saveFirstError(new AssertionError({
- assertion: 'plan',
- message: `Planned for ${this.planCount} ${plur('assertion', this.planCount)}, but got ${this.assertCount}.`,
- operator: '===',
- savedError: this.planError,
+ this.saveFirstError(new AssertionError(`Planned for ${this.planCount} ${plur('assertion', this.planCount)}, but got ${this.assertCount}.`, {
+ assertion: 't.plan()',
+ assertionStack: this.planAssertionStack,
}));
}
}
@@ -510,54 +518,53 @@ export default class Test {
callFn() {
try {
- return {
- ok: true,
- retval: this.fn.call(null, this.createExecutionContext()),
- };
+ return [true, this.fn.call(null, this.createExecutionContext())];
} catch (error) {
- return {
- ok: false,
- error,
- };
+ return [false, error];
}
}
run() {
this.startedAt = nowAndTimers.now();
- const result = this.callFn();
- if (!result.ok) {
- if (isExternalAssertError(result.error)) {
- this.saveFirstError(new AssertionError({
- message: 'Assertion failed',
- savedError: result.error instanceof Error && result.error,
- values: [{label: 'Assertion failed: ', formatted: result.error.message}],
+ const [syncOk, retval] = this.callFn();
+ if (!syncOk) {
+ if (this.testFailure !== null && retval === this.testFailure) {
+ return this.finish();
+ }
+
+ if (isExternalAssertError(retval)) {
+ this.saveFirstError(new AssertionError('Assertion failed', {
+ cause: retval,
+ formattedDetails: [{label: 'Assertion failed: ', formatted: retval.message}],
}));
} else {
- this.saveFirstError(new AssertionError({
- message: 'Error thrown in test',
- savedError: result.error instanceof Error && result.error,
- values: [formatErrorValue('Error thrown in test:', result.error)],
+ this.saveFirstError(new AssertionError('Error thrown in test', {
+ // TODO: Provide an assertion stack that traces to the test declaration,
+ // rather than AVA internals.
+ assertionStack: '',
+ cause: retval,
+ formattedDetails: [formatErrorValue('Error thrown in test:', retval)],
}));
}
return this.finish();
}
- const returnedObservable = result.retval !== null && typeof result.retval === 'object' && typeof result.retval.subscribe === 'function';
- const returnedPromise = isPromise(result.retval);
+ const returnedObservable = retval !== null && typeof retval === 'object' && typeof retval.subscribe === 'function';
+ const returnedPromise = isPromise(retval);
let promise;
if (returnedObservable) {
promise = new Promise((resolve, reject) => {
- result.retval.subscribe({
+ retval.subscribe({
error: reject,
complete: () => resolve(),
});
});
} else if (returnedPromise) {
// `retval` can be any thenable, so convert to a proper promise.
- promise = Promise.resolve(result.retval);
+ promise = Promise.resolve(retval);
}
if (promise) {
@@ -580,17 +587,19 @@ export default class Test {
promise
.catch(error => {
+ if (this.testFailure !== null && error === this.testFailure) {
+ return;
+ }
+
if (isExternalAssertError(error)) {
- this.saveFirstError(new AssertionError({
- message: 'Assertion failed',
- savedError: error instanceof Error && error,
- values: [{label: 'Assertion failed: ', formatted: error.message}],
+ this.saveFirstError(new AssertionError('Assertion failed', {
+ cause: error,
+ formattedDetails: [{label: 'Assertion failed: ', formatted: error.message}],
}));
} else {
- this.saveFirstError(new AssertionError({
- message: 'Rejected promise returned by test',
- savedError: error instanceof Error && error,
- values: [formatErrorValue('Rejected promise returned by test. Reason:', error)],
+ this.saveFirstError(new AssertionError('Rejected promise returned by test', {
+ cause: error,
+ formattedDetails: [formatErrorValue('Rejected promise returned by test. Reason:', error)],
}));
}
})
@@ -617,7 +626,11 @@ export default class Test {
if (this.metadata.failing) {
passed = !passed;
- error = passed ? null : new Error('Test was expected to fail, but succeeded, you should stop marking the test as failing');
+ error = passed ? null : new AssertionError('Test was expected to fail, but succeeded, you should stop marking the test as failing', {
+ // TODO: Provide an assertion stack that traces to the test declaration,
+ // rather than AVA internals.
+ assertionStack: '',
+ });
}
return {
diff --git a/lib/watcher.js b/lib/watcher.js
index 470a32229..cafd089e0 100644
--- a/lib/watcher.js
+++ b/lib/watcher.js
@@ -20,7 +20,7 @@ const END_MESSAGE = chalk.gray('Type `r` and press enter to rerun tests\nType `u
export function available(projectDir) {
try {
- fs.watch(projectDir, {recursive: true, signal: AbortSignal.abort()});
+ fs.watch(projectDir, {persistent: false, recursive: true, signal: AbortSignal.abort()});
} catch (error) {
if (error.code === 'ERR_FEATURE_UNAVAILABLE_ON_PLATFORM') {
return false;
@@ -106,7 +106,8 @@ async function * plan({api, filter, globs, projectDir, providers, stdin, abortSi
case 'uncaught-exception':
case 'unhandled-rejection':
case 'worker-failed': {
- failureCounts.set(evt.testFile, 1 + (failureCounts.get(evt.testFile) ?? 0));
+ const path = nodePath.relative(projectDir, evt.testFile);
+ failureCounts.set(path, 1 + (failureCounts.get(path) ?? 0));
break;
}
@@ -370,15 +371,15 @@ async function * plan({api, filter, globs, projectDir, providers, stdin, abortSi
}
});
- abortSignal.addEventListener('abort', () => {
+ abortSignal?.addEventListener('abort', () => {
signalChanged?.({});
});
// And finally, the watch loop.
- while (!abortSignal.aborted) {
+ while (abortSignal?.aborted !== true) {
const {testFiles: files = [], runOnlyExclusive = false} = await changed; // eslint-disable-line no-await-in-loop
- if (abortSignal.aborted) {
+ if (abortSignal?.aborted) {
break;
}
diff --git a/lib/worker/ava5-dependency-tracker.js b/lib/worker/ava5-dependency-tracker.js
deleted file mode 100644
index f56ea10ad..000000000
--- a/lib/worker/ava5-dependency-tracker.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import process from 'node:process';
-
-import channel from './channel.cjs';
-
-const seenDependencies = new Set();
-let newDependencies = [];
-
-function flush() {
- if (newDependencies.length === 0) {
- return;
- }
-
- channel.send({type: 'dependencies', dependencies: newDependencies});
- newDependencies = [];
-}
-
-function track(filename) {
- if (seenDependencies.has(filename)) {
- return;
- }
-
- if (newDependencies.length === 0) {
- process.nextTick(flush);
- }
-
- seenDependencies.add(filename);
- newDependencies.push(filename);
-}
-
-const tracker = {
- flush,
- track,
- install(extensions, testPath) {
- for (const ext of Object.keys(extensions)) {
- const wrappedHandler = extensions[ext];
-
- extensions[ext] = (module, filename) => {
- if (filename !== testPath) {
- track(filename);
- }
-
- wrappedHandler(module, filename);
- };
- }
- },
-};
-
-export default tracker;
diff --git a/lib/worker/base.js b/lib/worker/base.js
index d67e965ee..cc8d444c1 100644
--- a/lib/worker/base.js
+++ b/lib/worker/base.js
@@ -14,9 +14,8 @@ import providerManager from '../provider-manager.js';
import Runner from '../runner.js';
import serializeError from '../serialize-error.js';
-// TODO: Delete along with ava5+chokidar watcher.
-import dependencyTracking from './ava5-dependency-tracker.js';
import channel from './channel.cjs';
+import {runCompletionHandlers} from './completion-handlers.js';
import lineNumberSelection from './line-numbers.js';
import {set as setOptions} from './options.cjs';
import {flags, refs, sharedWorkerTeardowns} from './state.cjs';
@@ -25,37 +24,31 @@ import {isRunningInThread, isRunningInChildProcess} from './utils.cjs';
const currentlyUnhandled = setUpCurrentlyUnhandled();
let runner;
-// Override process.exit with an undetectable replacement
-// to report when it is called from a test (which it should never be).
-const {apply} = Reflect;
-const realExit = process.exit;
-
-async function exit(code, forceSync = false) {
- dependencyTracking.flush();
- const flushing = channel.flush();
- if (!forceSync) {
- await flushing;
- }
+let expectingExit = false;
- apply(realExit, process, [code]);
-}
+const forceExit = () => {
+ expectingExit = true;
+ process.exit(1);
+};
-const handleProcessExit = (fn, receiver, args) => {
- const error = new Error('Unexpected process.exit()');
- Error.captureStackTrace(error, handleProcessExit);
- const {stack} = serializeError('', true, error);
- channel.send({type: 'process-exit', stack});
+const avaIsDone = () => {
+ expectingExit = true;
+ runCompletionHandlers();
+};
- // Make sure to extract the code only from `args` rather than e.g. `Array.prototype`.
- // This level of paranoia is usually unwarranted, but we're dealing with test code
- // that has already colored outside the lines.
- const code = args.length > 0 ? args[0] : undefined;
+// Override process.exit with an undetectable replacement
+// to report when it is called from a test (which it should never be).
+const handleProcessExit = (target, thisArg, args) => {
+ if (!expectingExit) {
+ const error = new Error('Unexpected process.exit()');
+ Error.captureStackTrace(error, handleProcessExit);
+ channel.send({type: 'process-exit', stack: error.stack});
+ }
- // Force a synchronous exit as guaranteed by the real process.exit().
- exit(code, true);
+ target.apply(thisArg, args);
};
-process.exit = new Proxy(realExit, {
+process.exit = new Proxy(process.exit, {
apply: handleProcessExit,
});
@@ -75,7 +68,7 @@ const run = async options => {
lineNumbers: options.lineNumbers,
});
} catch (error) {
- channel.send({type: 'line-number-selection-error', err: serializeError('Line number selection error', false, error, options.file)});
+ channel.send({type: 'line-number-selection-error', err: serializeError(error)});
checkSelectedByLineNumbers = () => false;
}
@@ -101,15 +94,11 @@ const run = async options => {
});
runner.on('accessed-snapshots', filename => channel.send({type: 'accessed-snapshots', filename}));
- if (options.enableAva5DependencyTracking) {
- runner.on('dependency', dependencyTracking.track);
- }
-
runner.on('stateChange', state => channel.send(state));
runner.on('error', error => {
- channel.send({type: 'internal-error', err: serializeError('Internal runner error', false, error, runner.file)});
- exit(1);
+ channel.send({type: 'internal-error', err: serializeError(error)});
+ forceExit();
});
runner.on('finish', async () => {
@@ -119,31 +108,36 @@ const run = async options => {
channel.send({type: 'touched-files', files: touchedFiles});
}
} catch (error) {
- channel.send({type: 'internal-error', err: serializeError('Internal runner error', false, error, runner.file)});
- exit(1);
+ channel.send({type: 'internal-error', err: serializeError(error)});
+ forceExit();
return;
}
try {
await Promise.all(sharedWorkerTeardowns.map(fn => fn()));
} catch (error) {
- channel.send({type: 'uncaught-exception', err: serializeError('Shared worker teardown error', false, error, runner.file)});
- exit(1);
+ channel.send({type: 'uncaught-exception', err: serializeError(error)});
+ forceExit();
return;
}
nowAndTimers.setImmediate(() => {
- for (const rejection of currentlyUnhandled()) {
- channel.send({type: 'unhandled-rejection', err: serializeError('Unhandled rejection', true, rejection.reason, runner.file)});
+ const unhandled = currentlyUnhandled();
+ if (unhandled.length === 0) {
+ return avaIsDone();
}
- exit(0);
+ for (const rejection of unhandled) {
+ channel.send({type: 'unhandled-rejection', err: serializeError(rejection.reason, {testFile: options.file})});
+ }
+
+ forceExit();
});
});
process.on('uncaughtException', error => {
- channel.send({type: 'uncaught-exception', err: serializeError('Uncaught exception', true, error, runner.file)});
- exit(1);
+ channel.send({type: 'uncaught-exception', err: serializeError(error, {testFile: options.file})});
+ forceExit();
});
// Store value to prevent required modules from modifying it.
@@ -234,12 +228,6 @@ const run = async options => {
}
}
- if (options.enableAva5DependencyTracking) {
- // Install dependency tracker after the require configuration has been evaluated
- // to make sure we also track dependencies with custom require hooks
- dependencyTracking.install(require.extensions, testPath);
- }
-
if (options.debug?.port !== undefined && options.debug?.host !== undefined) {
// If an inspector was active when the main process started, and is
// already active for the worker process, do not open a new one.
@@ -262,11 +250,11 @@ const run = async options => {
channel.unref();
} else {
channel.send({type: 'missing-ava-import'});
- exit(1);
+ forceExit();
}
} catch (error) {
- channel.send({type: 'uncaught-exception', err: serializeError('Uncaught exception', true, error, runner.file)});
- exit(1);
+ channel.send({type: 'uncaught-exception', err: serializeError(error, {testFile: options.file})});
+ forceExit();
}
};
diff --git a/lib/worker/channel.cjs b/lib/worker/channel.cjs
index 9bcc6808e..3f11a973a 100644
--- a/lib/worker/channel.cjs
+++ b/lib/worker/channel.cjs
@@ -105,27 +105,11 @@ if (isRunningInChildProcess) {
// Node.js. In order to keep track, explicitly reference before attaching.
handle.ref();
-exports.options = selectAvaMessage(handle.channel, 'options').then(message => message.ava.options); // eslint-disable-line unicorn/prefer-top-level-await
-exports.peerFailed = selectAvaMessage(handle.channel, 'peer-failed'); // eslint-disable-line unicorn/prefer-top-level-await
+exports.options = selectAvaMessage(handle.channel, 'options').then(message => message.ava.options);
+exports.peerFailed = selectAvaMessage(handle.channel, 'peer-failed');
exports.send = handle.send.bind(handle);
exports.unref = handle.unref.bind(handle);
-let pendingPings = Promise.resolve();
-async function flush() {
- handle.ref();
- const promise = pendingPings.then(async () => {
- handle.send({type: 'ping'});
- await selectAvaMessage(handle.channel, 'pong');
- if (promise === pendingPings) {
- handle.unref();
- }
- });
- pendingPings = promise;
- await promise;
-}
-
-exports.flush = flush;
-
let channelCounter = 0;
let messageCounter = 0;
diff --git a/lib/worker/completion-handlers.js b/lib/worker/completion-handlers.js
new file mode 100644
index 000000000..ddf4b479e
--- /dev/null
+++ b/lib/worker/completion-handlers.js
@@ -0,0 +1,13 @@
+import process from 'node:process';
+
+import state from './state.cjs';
+
+export function runCompletionHandlers() {
+ for (const handler of state.completionHandlers) {
+ process.nextTick(() => handler());
+ }
+}
+
+export function registerCompletionHandler(handler) {
+ state.completionHandlers.push(handler);
+}
diff --git a/lib/worker/state.cjs b/lib/worker/state.cjs
index 9e7deaeaf..3cd9e2d29 100644
--- a/lib/worker/state.cjs
+++ b/lib/worker/state.cjs
@@ -1,5 +1,6 @@
'use strict';
exports.flags = {loadedMain: false};
exports.refs = {runnerChain: null};
+exports.completionHandlers = [];
exports.sharedWorkerTeardowns = [];
exports.waitForReady = [];
diff --git a/license b/license
index e7af2f771..fa7ceba3e 100644
--- a/license
+++ b/license
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) Sindre Sorhus (sindresorhus.com)
+Copyright (c) Sindre Sorhus (https://sindresorhus.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/package-lock.json b/package-lock.json
index 66ac94158..06f3b3e19 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,48 +1,47 @@
{
"name": "ava",
- "version": "5.3.1",
+ "version": "6.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ava",
- "version": "5.3.1",
+ "version": "6.1.1",
"license": "MIT",
"dependencies": {
- "@vercel/nft": "^0.22.6",
- "acorn": "^8.9.0",
- "acorn-walk": "^8.2.0",
+ "@vercel/nft": "^0.26.2",
+ "acorn": "^8.11.3",
+ "acorn-walk": "^8.3.2",
"ansi-styles": "^6.2.1",
"arrgv": "^1.0.2",
"arrify": "^3.0.0",
- "callsites": "^4.0.0",
- "cbor": "^9.0.0",
+ "callsites": "^4.1.0",
+ "cbor": "^9.0.1",
"chalk": "^5.3.0",
"chunkd": "^2.0.1",
- "ci-info": "^3.8.0",
+ "ci-info": "^4.0.0",
"ci-parallel-vars": "^1.0.1",
- "clean-yaml-object": "^0.1.0",
- "cli-truncate": "^3.1.0",
+ "cli-truncate": "^4.0.0",
"code-excerpt": "^4.0.0",
"common-path-prefix": "^3.0.0",
"concordance": "^5.0.4",
"currently-unhandled": "^0.4.1",
"debug": "^4.3.4",
"emittery": "^1.0.1",
- "figures": "^5.0.0",
- "globby": "^13.2.1",
+ "figures": "^6.0.1",
+ "globby": "^14.0.0",
"ignore-by-default": "^2.1.0",
"indent-string": "^5.0.0",
"is-plain-object": "^5.0.0",
"is-promise": "^4.0.0",
"matcher": "^5.0.0",
- "mem": "^9.0.2",
+ "memoize": "^10.0.0",
"ms": "^2.1.3",
- "p-map": "^6.0.0",
- "picomatch": "^2.3.1",
- "pkg-conf": "^4.0.0",
+ "p-map": "^7.0.1",
+ "package-config": "^5.0.0",
+ "picomatch": "^3.0.1",
"plur": "^5.1.0",
- "pretty-ms": "^8.0.0",
+ "pretty-ms": "^9.0.0",
"resolve-cwd": "^3.0.0",
"stack-utils": "^2.0.6",
"strip-ansi": "^7.1.0",
@@ -57,33 +56,29 @@
"devDependencies": {
"@ava/test": "github:avajs/test",
"@ava/typescript": "^4.1.0",
- "@sindresorhus/tsconfig": "^3.0.1",
- "@types/node": "^20.3.3",
+ "@sindresorhus/tsconfig": "^5.0.0",
+ "@types/node": "^20.11.10",
"ansi-escapes": "^6.2.0",
- "c8": "^8.0.0",
- "execa": "^7.1.1",
- "expect": "^29.5.0",
- "sinon": "^15.2.0",
- "tap": "^16.3.7",
- "tempy": "^3.0.0",
- "tsd": "^0.28.1",
- "typescript": "^5.1.6",
- "xo": "^0.54.2",
+ "c8": "^9.1.0",
+ "execa": "^8.0.1",
+ "expect": "^29.7.0",
+ "sinon": "^17.0.1",
+ "tap": "^18.7.0",
+ "tempy": "^3.1.0",
+ "tsd": "^0.30.4",
+ "typescript": "~5.3.3",
+ "xo": "^0.56.0",
"zen-observable": "^0.10.0"
},
"engines": {
- "node": "^16.18 || ^18.16 || ^20.3"
+ "node": "^18.18 || ^20.8 || ^21"
},
"peerDependencies": {
- "@ava/typescript": "*",
- "chokidar": "^3.5.3"
+ "@ava/typescript": "*"
},
"peerDependenciesMeta": {
"@ava/typescript": {
"optional": true
- },
- "chokidar": {
- "optional": true
}
}
},
@@ -96,26 +91,26 @@
"node": ">=0.10.0"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "node_modules/@alcalzone/ansi-tokenize": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz",
+ "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==",
"dev": true,
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^4.0.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=14.13.1"
}
},
"node_modules/@ava/test": {
"version": "0.0.0",
- "resolved": "git+ssh://git@github.com/avajs/test.git#011135c4aec550d2bfbea03d144e33e3066cec82",
+ "resolved": "git+ssh://git@github.com/avajs/test.git#8482014de4cabf2fac14e28ca80130cbe8adee21",
"dev": true,
"license": "MIT",
"dependencies": {
- "@ava/v5": "npm:ava@5.3.1"
+ "@ava/v6": "npm:ava@^6"
},
"bin": {
"test-ava": "cli.js"
@@ -134,52 +129,99 @@
"node": "^14.19 || ^16.15 || ^18 || ^20"
}
},
- "node_modules/@ava/v5": {
+ "node_modules/@ava/typescript/node_modules/execa": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/@ava/typescript/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@ava/typescript/node_modules/human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/@ava/typescript/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/@ava/v6": {
"name": "ava",
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ava/-/ava-5.3.1.tgz",
- "integrity": "sha512-Scv9a4gMOXB6+ni4toLuhAm9KYWEjsgBglJl+kMGI5+IVDt120CCDZyB5HNU9DjmLI2t4I0GbnxGLmmRfGTJGg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ava/-/ava-6.1.0.tgz",
+ "integrity": "sha512-0fOQIWMHT9DYelzTYc3TI/4fmmmJ5LdvRWd6F43CppYfg84VrM5EO+hmlv2cPujMJAWuVesUWVloUu9PIwrgTA==",
"dev": true,
"dependencies": {
- "acorn": "^8.8.2",
- "acorn-walk": "^8.2.0",
+ "@vercel/nft": "^0.24.4",
+ "acorn": "^8.11.2",
+ "acorn-walk": "^8.3.0",
"ansi-styles": "^6.2.1",
"arrgv": "^1.0.2",
"arrify": "^3.0.0",
- "callsites": "^4.0.0",
- "cbor": "^8.1.0",
- "chalk": "^5.2.0",
- "chokidar": "^3.5.3",
+ "callsites": "^4.1.0",
+ "cbor": "^9.0.1",
+ "chalk": "^5.3.0",
"chunkd": "^2.0.1",
- "ci-info": "^3.8.0",
+ "ci-info": "^4.0.0",
"ci-parallel-vars": "^1.0.1",
- "clean-yaml-object": "^0.1.0",
- "cli-truncate": "^3.1.0",
+ "cli-truncate": "^4.0.0",
"code-excerpt": "^4.0.0",
"common-path-prefix": "^3.0.0",
"concordance": "^5.0.4",
"currently-unhandled": "^0.4.1",
"debug": "^4.3.4",
"emittery": "^1.0.1",
- "figures": "^5.0.0",
- "globby": "^13.1.4",
+ "figures": "^6.0.1",
+ "globby": "^14.0.0",
"ignore-by-default": "^2.1.0",
"indent-string": "^5.0.0",
- "is-error": "^2.2.2",
"is-plain-object": "^5.0.0",
"is-promise": "^4.0.0",
"matcher": "^5.0.0",
- "mem": "^9.0.2",
+ "memoize": "^10.0.0",
"ms": "^2.1.3",
- "p-event": "^5.0.1",
- "p-map": "^5.5.0",
- "picomatch": "^2.3.1",
- "pkg-conf": "^4.0.0",
+ "p-map": "^6.0.0",
+ "package-config": "^5.0.0",
+ "picomatch": "^3.0.1",
"plur": "^5.1.0",
"pretty-ms": "^8.0.0",
"resolve-cwd": "^3.0.0",
"stack-utils": "^2.0.6",
- "strip-ansi": "^7.0.1",
+ "strip-ansi": "^7.1.0",
"supertap": "^3.0.1",
"temp-dir": "^3.0.0",
"write-file-atomic": "^5.0.1",
@@ -189,7 +231,7 @@
"ava": "entrypoints/cli.mjs"
},
"engines": {
- "node": ">=14.19 <15 || >=16.15 <17 || >=18"
+ "node": "^18.18 || ^20.8 || ^21"
},
"peerDependencies": {
"@ava/typescript": "*"
@@ -200,52 +242,47 @@
}
}
},
- "node_modules/@ava/v5/node_modules/cbor": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz",
- "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==",
+ "node_modules/@ava/v6/node_modules/@vercel/nft": {
+ "version": "0.24.4",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.24.4.tgz",
+ "integrity": "sha512-KjYAZty7boH5fi5udp6p+lNu6nawgs++pHW+3koErMgbRkkHuToGX/FwjN5clV1FcaM3udfd4zW/sUapkMgpZw==",
"dev": true,
"dependencies": {
- "nofilter": "^3.1.0"
+ "@mapbox/node-pre-gyp": "^1.0.5",
+ "@rollup/pluginutils": "^4.0.0",
+ "acorn": "^8.6.0",
+ "async-sema": "^3.1.1",
+ "bindings": "^1.4.0",
+ "estree-walker": "2.0.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.2",
+ "node-gyp-build": "^4.2.2",
+ "resolve-from": "^5.0.0"
},
- "engines": {
- "node": ">=12.19"
- }
- },
- "node_modules/@ava/v5/node_modules/p-event": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz",
- "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==",
- "dev": true,
- "dependencies": {
- "p-timeout": "^5.0.2"
+ "bin": {
+ "nft": "out/cli.js"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=16"
}
},
- "node_modules/@ava/v5/node_modules/p-map": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz",
- "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==",
+ "node_modules/@ava/v6/node_modules/p-map": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
+ "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
"dev": true,
- "dependencies": {
- "aggregate-error": "^4.0.0"
- },
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@ava/v5/node_modules/p-timeout": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
- "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
+ "node_modules/@ava/v6/node_modules/parse-ms": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz",
+ "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==",
"dev": true,
"engines": {
"node": ">=12"
@@ -254,262 +291,107 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
- "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
- "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
+ "node_modules/@ava/v6/node_modules/pretty-ms": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz",
+ "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==",
"dev": true,
"dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
+ "parse-ms": "^3.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=14.16"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/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/@babel/generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
- "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz",
- "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-compilation-targets/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/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "node_modules/@babel/code-frame/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": {
- "@babel/types": "^7.22.5"
+ "color-convert": "^1.9.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=4"
}
},
- "node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "node_modules/@babel/code-frame/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": {
- "@babel/types": "^7.22.5"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=4"
}
},
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
- "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
+ "node_modules/@babel/code-frame/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,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=0.8.0"
}
},
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "node_modules/@babel/code-frame/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,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=4"
}
},
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
- "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
+ "node_modules/@babel/code-frame/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": {
- "@babel/types": "^7.22.5"
+ "has-flag": "^3.0.0"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
+ "node": ">=4"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
- "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
- "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -572,106 +454,63 @@
"node": ">=4"
}
},
- "node_modules/@babel/parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
- "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==",
+ "node_modules/@base2/pretty-print-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz",
+ "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==",
+ "dev": true
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "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,
- "bin": {
- "parser": "bin/babel-parser.js"
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=12"
}
},
- "node_modules/@babel/template": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
- "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "eslint-visitor-keys": "^3.3.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@babel/traverse": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
- "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@babel/types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
- "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
- "dev": true,
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -692,21 +531,6 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -719,35 +543,23 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@eslint/js": {
- "version": "8.44.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz",
- "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==",
+ "version": "8.56.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
+ "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
- "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -768,77 +580,98 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
"dev": true
},
- "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==",
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"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"
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
- "node_modules/@istanbuljs/load-nyc-config/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/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
},
- "node_modules/@istanbuljs/load-nyc-config/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==",
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
- "p-locate": "^4.1.0"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@istanbuljs/load-nyc-config/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==",
+ "node_modules/@isaacs/ts-node-temp-fork-for-pr-2009": {
+ "version": "10.9.5",
+ "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.5.tgz",
+ "integrity": "sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==",
"dev": true,
"dependencies": {
- "p-try": "^2.0.0"
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node14": "*",
+ "@tsconfig/node16": "*",
+ "@tsconfig/node18": "*",
+ "@tsconfig/node20": "*",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1"
},
- "engines": {
- "node": ">=6"
+ "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"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=4.2"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
}
},
- "node_modules/@istanbuljs/load-nyc-config/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==",
+ "node_modules/@isaacs/ts-node-temp-fork-for-pr-2009/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,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=0.3.1"
}
},
"node_modules/@istanbuljs/schema": {
@@ -851,36 +684,36 @@
}
},
"node_modules/@jest/expect-utils": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
- "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
"dependencies": {
- "jest-get-type": "^29.4.3"
+ "jest-get-type": "^29.6.3"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/schemas": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
- "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
"dependencies": {
- "@sinclair/typebox": "^0.25.16"
+ "@sinclair/typebox": "^0.27.8"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/types": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
- "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
"dependencies": {
- "@jest/schemas": "^29.4.3",
+ "@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
@@ -945,6 +778,7 @@
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
+ "peer": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -955,9 +789,9 @@
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
@@ -968,16 +802,21 @@
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.4.tgz",
- "integrity": "sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
+ "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
"dev": true,
- "peer": true
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
@@ -986,25 +825,19 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "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.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
"node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
- "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
+ "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
"dependencies": {
"detect-libc": "^2.0.0",
"https-proxy-agent": "^5.0.0",
@@ -1052,2375 +885,1969 @@
"node": ">= 8"
}
},
- "node_modules/@rollup/pluginutils": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
- "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
+ "node_modules/@npmcli/agent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz",
+ "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==",
+ "dev": true,
"dependencies": {
- "estree-walker": "^2.0.1",
- "picomatch": "^2.2.2"
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.1"
},
"engines": {
- "node": ">= 8.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@sinclair/typebox": {
- "version": "0.25.24",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
- "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
- "dev": true
- },
- "node_modules/@sindresorhus/tsconfig": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-3.0.1.tgz",
- "integrity": "sha512-0/gtPNTY3++0J2BZM5nHHULg0BIMw886gqdn8vWN+Av6bgF5ZU2qIcHubAn+Z9KNvJhO8WFE+9kDOU3n6OcKtA==",
+ "node_modules/@npmcli/agent/node_modules/agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
"engines": {
- "node": ">=14"
+ "node": ">= 14"
}
},
- "node_modules/@sinonjs/commons": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
- "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
+ "node_modules/@npmcli/agent/node_modules/https-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
"dev": true,
"dependencies": {
- "type-detect": "4.0.8"
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "node_modules/@npmcli/agent/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"dev": true,
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
+ "engines": {
+ "node": "14 || >=16.14"
}
},
- "node_modules/@sinonjs/samsam": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz",
- "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==",
+ "node_modules/@npmcli/fs": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz",
+ "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==",
"dev": true,
"dependencies": {
- "@sinonjs/commons": "^2.0.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
- "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "node_modules/@npmcli/git": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz",
+ "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==",
"dev": true,
"dependencies": {
- "type-detect": "4.0.8"
+ "@npmcli/promise-spawn": "^7.0.0",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^3.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
+ "node_modules/@npmcli/git/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
},
- "node_modules/@tsd/typescript": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.0.4.tgz",
- "integrity": "sha512-YQi2lvZSI+xidKeUjlbv6b6Zw7qB3aXHw5oGJLs5OOGAEqKIOvz5UIAkWyg0bJbkSUWPBEtaOHpVxU4EYBO1Jg==",
- "dev": true
+ "node_modules/@npmcli/git/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
},
- "node_modules/@types/eslint": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
- "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==",
+ "node_modules/@npmcli/git/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
"dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "node_modules/@npmcli/installed-package-contents": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz",
+ "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
+ "npm-bundled": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "bin": {
+ "installed-package-contents": "lib/index.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@types/estree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
- "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-report": {
+ "node_modules/@npmcli/node-gyp": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz",
+ "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==",
"dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "node_modules/@npmcli/package-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz",
+ "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==",
"dev": true,
"dependencies": {
- "@types/istanbul-lib-report": "*"
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
- "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
- "dev": true
+ "node_modules/@npmcli/package-json/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
},
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
- "node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "20.3.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.3.tgz",
- "integrity": "sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw==",
- "dev": true
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
+ "node_modules/@npmcli/package-json/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "node_modules/@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
+ "node_modules/@npmcli/package-json/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "node_modules/@types/yargs": {
- "version": "17.0.24",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
- "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
+ "node_modules/@npmcli/promise-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz",
+ "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==",
"dev": true,
"dependencies": {
- "@types/yargs-parser": "*"
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
+ "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
},
- "node_modules/@vercel/nft": {
- "version": "0.22.6",
- "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.6.tgz",
- "integrity": "sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==",
+ "node_modules/@npmcli/promise-spawn/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "dev": true,
"dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.5",
- "@rollup/pluginutils": "^4.0.0",
- "acorn": "^8.6.0",
- "async-sema": "^3.1.1",
- "bindings": "^1.4.0",
- "estree-walker": "2.0.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.2",
- "node-gyp-build": "^4.2.2",
- "resolve-from": "^5.0.0"
+ "isexe": "^3.1.1"
},
"bin": {
- "nft": "out/cli.js"
+ "node-which": "bin/which.js"
},
"engines": {
- "node": ">=14"
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/ast": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
- "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
+ "node_modules/@npmcli/run-script": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz",
+ "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "node-gyp": "^10.0.0",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
+ "node_modules/@npmcli/run-script/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true,
- "peer": true
+ "engines": {
+ "node": ">=16"
+ }
},
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
+ "node_modules/@npmcli/run-script/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
},
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
- "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
- "peer": true
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
},
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "node_modules/@pkgr/core": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
+ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
"dev": true,
- "peer": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
"dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@xtuc/long": "4.2.2"
+ "estree-walker": "^2.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
}
},
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
- "dev": true,
- "peer": true
+ "node_modules/@rollup/pluginutils/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
- "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
+ "node_modules/@sigstore/bundle": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz",
+ "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6"
+ "@sigstore/protobuf-specs": "^0.2.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "node_modules/@sigstore/core": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz",
+ "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "node_modules/@sigstore/protobuf-specs": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz",
+ "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
+ "node_modules/@sigstore/sign": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz",
+ "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@sigstore/bundle": "^2.1.1",
+ "@sigstore/core": "^0.2.0",
+ "@sigstore/protobuf-specs": "^0.2.1",
+ "make-fetch-happen": "^13.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
},
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
- "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
+ "node_modules/@sigstore/tuf": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz",
+ "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-opt": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6",
- "@webassemblyjs/wast-printer": "1.11.6"
+ "@sigstore/protobuf-specs": "^0.2.1",
+ "tuf-js": "^2.2.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
- "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
+ "node_modules/@sigstore/verify": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz",
+ "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "@sigstore/bundle": "^2.1.1",
+ "@sigstore/core": "^0.2.0",
+ "@sigstore/protobuf-specs": "^0.2.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
- "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@sindresorhus/merge-streams": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz",
+ "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sindresorhus/tsconfig": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-5.0.0.tgz",
+ "integrity": "sha512-LvvySslVPhAwo7dT+iovKXKCmJD82yYAsH/3D5BSyT3YP9Dvhdlhy0eQr0DBE0CxeFO6Wdbco3+nB+c2QYcAaA==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6"
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
- "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "type-detect": "4.0.8"
}
},
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
- "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
"dev": true,
- "peer": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@xtuc/long": "4.2.2"
+ "@sinonjs/commons": "^3.0.0"
}
},
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "node_modules/@sinonjs/samsam": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz",
+ "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
},
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
},
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ "node_modules/@sinonjs/text-encoding": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
+ "dev": true
},
- "node_modules/acorn": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
- "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
- "bin": {
- "acorn": "bin/acorn"
+ "node_modules/@tapjs/after": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.18.tgz",
+ "integrity": "sha512-r0vMFMfxmO6UR+pB9zGvamaeUI+yhLokYAagsKoM3JdoZgyq0iw1fHn5hPPY8AC1tAzEYG3KtVDpJfpoOr67Iw==",
+ "dev": true,
+ "dependencies": {
+ "is-actual-promise": "^1.0.0"
},
"engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-import-assertions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
- "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
- "dev": true,
- "peer": true,
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
"peerDependencies": {
- "acorn": "^8"
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/@tapjs/after-each": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.18.tgz",
+ "integrity": "sha512-AuXeD8uUYQ/CUdfhx2jvBhJf3M+T/Kroz5T6ItocZ3jf8H/4x2OKMVbb5YcB7J4ANGtmzXp+8SBseoN1av6y0Q==",
"dev": true,
+ "dependencies": {
+ "function-loop": "^4.0.0"
+ },
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
"peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@tapjs/core": "1.5.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==",
+ "node_modules/@tapjs/asserts": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.18.tgz",
+ "integrity": "sha512-MwGs/QklLRAsMnB4fO6QFaZ0myR//E21Rek/gGCpTxz7eUwCh24/y7MlBV0W6zDFdnQ1GFbHc/fIBVtcPAWjyw==",
+ "dev": true,
+ "dependencies": {
+ "@tapjs/stack": "1.2.7",
+ "is-actual-promise": "^1.0.0",
+ "tcompare": "6.4.5",
+ "trivial-deferred": "^2.0.0"
+ },
"engines": {
- "node": ">=0.4.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "node_modules/@tapjs/before": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.18.tgz",
+ "integrity": "sha512-2rkXrAWlkl0+bZ8wSNfEW/7TANs/Dg5SrY2MmdEb0x7Q/zbMoGjrPVKDRF20Me0p+tJBLWSY+FXQ0OhXK0pUjg==",
+ "dev": true,
"dependencies": {
- "debug": "4"
+ "is-actual-promise": "^1.0.0"
},
"engines": {
- "node": ">= 6.0.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/aggregate-error": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
- "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
+ "node_modules/@tapjs/before-each": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.18.tgz",
+ "integrity": "sha512-qxBQaOY+IkThP9iauL1tHCxirG9XuKGJvGHY4IGKuk0RswWkXmawSe5hcJ8m569dRXy9yJHEV7N0QueuyWxpBA==",
"dev": true,
"dependencies": {
- "clean-stack": "^4.0.0",
- "indent-string": "^5.0.0"
+ "function-loop": "^4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@tapjs/config": {
+ "version": "2.4.15",
+ "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.15.tgz",
+ "integrity": "sha512-uU/gfQJh8aSokEBgwAAHD5ctHYbIiZYFaL6IrROcDp7Wr7/fd/dn9K4efpREwKpqKqOgL3XZPOwx7prKxrLHhA==",
"dev": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "@tapjs/core": "1.5.0",
+ "@tapjs/test": "1.4.0",
+ "chalk": "^5.2.0",
+ "jackspeak": "^2.3.6",
+ "polite-json": "^4.0.1",
+ "tap-yaml": "2.2.1",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0",
+ "@tapjs/test": "1.4.0"
}
},
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "node_modules/@tapjs/core": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.5.0.tgz",
+ "integrity": "sha512-g+NNI5TGXVJR5G4AZCU0hWu1pdA2qB2OYrY9Ej3mWeg97mvNZBVgNtvx8Vjdwp9BfgbJfyFK7PvoB4nhKgetSQ==",
"dev": true,
- "peer": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
+ "dependencies": {
+ "@tapjs/processinfo": "^3.1.6",
+ "@tapjs/stack": "1.2.7",
+ "@tapjs/test": "1.4.0",
+ "async-hook-domain": "^4.0.1",
+ "diff": "^5.1.0",
+ "is-actual-promise": "^1.0.0",
+ "minipass": "^7.0.3",
+ "signal-exit": "4.1",
+ "tap-parser": "15.3.1",
+ "tap-yaml": "2.2.1",
+ "tcompare": "6.4.5",
+ "trivial-deferred": "^2.0.0"
+ },
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
}
},
- "node_modules/ansi-escapes": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
- "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
+ "node_modules/@tapjs/error-serdes": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.1.tgz",
+ "integrity": "sha512-/7eLEcrGo+Qz3eWrjkhDC+VSEOjabkkzr9eRADeU+OLFeZaik8L/GRk0SGhnp4YsQkv0jcNV00A42bEx2HIZcw==",
"dev": true,
"dependencies": {
- "type-fest": "^3.0.0"
+ "minipass": "^7.0.3"
},
"engines": {
- "node": ">=14.16"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "node_modules/@tapjs/filter": {
+ "version": "1.2.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.18.tgz",
+ "integrity": "sha512-0yCqaHYLejI/KyxdB5EsrRVu3wxZVl7vPXTwBoyc+ycJWXPapHLhKl67Xk5x3FW/nNelA9TCq/tSHcYlogGN0g==",
+ "dev": true,
"engines": {
- "node": ">=12"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "node_modules/@tapjs/fixture": {
+ "version": "1.2.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.18.tgz",
+ "integrity": "sha512-BQIRxydaqjZIG61QhoiQOc9HE3MxSjCn7SUsIfYCzoZoY+3aY6iCdTVg2la86b5ikTbwoWxWWbqICnFWebuHnQ==",
+ "dev": true,
+ "dependencies": {
+ "mkdirp": "^3.0.0",
+ "rimraf": "^5.0.5"
+ },
"engines": {
- "node": ">=12"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "devOptional": true,
+ "node_modules/@tapjs/fixture/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
"dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
+ "balanced-match": "^1.0.0"
}
},
- "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==",
+ "node_modules/@tapjs/fixture/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"dev": true,
"dependencies": {
- "default-require-extensions": "^3.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
- },
- "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/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
+ "node_modules/@tapjs/fixture/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
"dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "node_modules/@tapjs/fixture/node_modules/rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/array-find": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz",
- "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==",
- "dev": true
- },
- "node_modules/array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "node_modules/@tapjs/intercept": {
+ "version": "1.2.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.18.tgz",
+ "integrity": "sha512-Trcmp64RKD2/nMz7/+NuwjJHfrn8eFofX3s3g0+QGvnTv+5B5ZQs+zWjS7q2d1Qt8LDV8CfS5w3BhYyONsocSw==",
+ "dev": true,
+ "dependencies": {
+ "@tapjs/after": "1.1.18",
+ "@tapjs/stack": "1.2.7"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/array-includes": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
- "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "node_modules/@tapjs/mock": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.3.0.tgz",
+ "integrity": "sha512-Uzyikl8SS8Mg7OOr2HuyiaVhYvHNRZnw6A1/qTiJnoZ1MHcLFuwFqIX9ZhfXMil5MIYC/ET096VMDm45q9Tdvw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
- "is-string": "^1.0.7"
+ "@tapjs/after": "1.1.18",
+ "@tapjs/stack": "1.2.7",
+ "resolve-import": "^1.4.5",
+ "walk-up-path": "^3.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "node_modules/@tapjs/node-serialize": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.3.0.tgz",
+ "integrity": "sha512-52oQKQJMMKrI1cNu8kJ5WTv8YFnbhwfwUs3Jh1vXQb4tOhLW8IHWqXBi5AiNL3HlCMMHaKDFQjW6sbbJuMyJPA==",
"dev": true,
+ "dependencies": {
+ "@tapjs/error-serdes": "1.2.1",
+ "@tapjs/stack": "1.2.7",
+ "tap-parser": "15.3.1"
+ },
"engines": {
- "node": ">=8"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/array.prototype.flat": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
- "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "node_modules/@tapjs/processinfo": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.6.tgz",
+ "integrity": "sha512-ktDsaf79wJsLaoG1Pp+stHSRf6a1k/JydoRAaYVG5iJnd3DooL6yewZsciUi2yiN/WQc5tAXCIFTXL4uXGB8LA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0"
+ "pirates": "^4.0.5",
+ "process-on-spawn": "^1.0.0",
+ "signal-exit": "^4.0.2",
+ "uuid": "^8.3.2"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=16.17"
}
},
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
- "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "node_modules/@tapjs/reporter": {
+ "version": "1.3.16",
+ "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.16.tgz",
+ "integrity": "sha512-YoZpBAFGdZyrhIaRCZDuWSeCc10A3YG/4mIdPsKpSbLXPBZ1hwCV8Y/LPCpH5kunZTXYocvQoRHU+oD4pLXC3g==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0"
+ "@tapjs/config": "2.4.15",
+ "@tapjs/stack": "1.2.7",
+ "chalk": "^5.2.0",
+ "ink": "^4.4.1",
+ "minipass": "^7.0.3",
+ "ms": "^2.1.3",
+ "patch-console": "^2.0.0",
+ "prismjs-terminal": "^1.2.3",
+ "react": "^18.2.0",
+ "string-length": "^6.0.0",
+ "tap-parser": "15.3.1",
+ "tap-yaml": "2.2.1",
+ "tcompare": "6.4.5"
},
"engines": {
- "node": ">= 0.4"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/arrgv": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz",
- "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==",
- "engines": {
- "node": ">=8.0.0"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/arrify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
- "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==",
+ "node_modules/@tapjs/run": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.5.0.tgz",
+ "integrity": "sha512-WrmbHHrhvRvLlTTAGiogF09xiPoorsoG4diAIKifGUyGD/9qRA7pT2mzYIqXvhyxbtuEmaeobHjupSZrak+O4Q==",
+ "dev": true,
+ "dependencies": {
+ "@tapjs/after": "1.1.18",
+ "@tapjs/before": "1.1.18",
+ "@tapjs/config": "2.4.15",
+ "@tapjs/processinfo": "^3.1.6",
+ "@tapjs/reporter": "1.3.16",
+ "@tapjs/spawn": "1.1.18",
+ "@tapjs/stdin": "1.1.18",
+ "@tapjs/test": "1.4.0",
+ "c8": "^8.0.1",
+ "chalk": "^5.3.0",
+ "chokidar": "^3.5.3",
+ "foreground-child": "^3.1.1",
+ "glob": "^10.3.10",
+ "minipass": "^7.0.3",
+ "mkdirp": "^3.0.1",
+ "opener": "^1.5.2",
+ "pacote": "^17.0.3",
+ "resolve-import": "^1.4.5",
+ "rimraf": "^5.0.5",
+ "semver": "^7.5.4",
+ "signal-exit": "^4.1.0",
+ "tap-parser": "15.3.1",
+ "tap-yaml": "2.2.1",
+ "tcompare": "6.4.5",
+ "trivial-deferred": "^2.0.0",
+ "which": "^4.0.0"
+ },
+ "bin": {
+ "tap-run": "dist/esm/index.js"
+ },
"engines": {
- "node": ">=12"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "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==",
+ "node_modules/@tapjs/run/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/async-sema": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz",
- "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg=="
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "node_modules/@tapjs/run/node_modules/c8": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz",
+ "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^2.0.0",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-reports": "^3.1.6",
+ "rimraf": "^3.0.2",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1"
+ },
+ "bin": {
+ "c8": "bin/c8.js"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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=="
- },
- "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==",
- "devOptional": 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/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "dependencies": {
- "file-uri-to-path": "1.0.0"
+ "node": ">=12"
}
},
- "node_modules/blueimp-md5": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
- "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
- },
- "node_modules/brace-expansion": {
+ "node_modules/@tapjs/run/node_modules/c8/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==",
+ "node_modules/@tapjs/run/node_modules/c8/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": {
- "fill-range": "^7.0.1"
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^3.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.0.0"
}
},
- "node_modules/browserslist": {
- "version": "4.21.9",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
- "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
+ "node_modules/@tapjs/run/node_modules/c8/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,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
"dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "bin": {
- "browserslist": "cli.js"
+ "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": "^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/builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "node": "*"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
+ "node_modules/@tapjs/run/node_modules/c8/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": {
- "semver": "^7.0.0"
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/c8": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz",
- "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==",
+ "node_modules/@tapjs/run/node_modules/c8/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": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@istanbuljs/schema": "^0.1.3",
- "find-up": "^5.0.0",
- "foreground-child": "^2.0.0",
- "istanbul-lib-coverage": "^3.2.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-reports": "^3.1.4",
- "rimraf": "^3.0.2",
- "test-exclude": "^6.0.0",
- "v8-to-istanbul": "^9.0.0",
- "yargs": "^16.2.0",
- "yargs-parser": "^20.2.9"
+ "glob": "^7.1.3"
},
"bin": {
- "c8": "bin/c8.js"
+ "rimraf": "bin.js"
},
- "engines": {
- "node": ">=12"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8/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==",
+ "node_modules/@tapjs/run/node_modules/c8/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/@tapjs/run/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8/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/c8/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==",
+ "node_modules/@tapjs/run/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=16"
}
},
- "node_modules/c8/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==",
+ "node_modules/@tapjs/run/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8/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==",
+ "node_modules/@tapjs/run/node_modules/rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/c8/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "node_modules/@tapjs/run/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
"dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
},
"engines": {
- "node": ">=10"
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "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==",
+ "node_modules/@tapjs/snapshot": {
+ "version": "1.2.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.18.tgz",
+ "integrity": "sha512-fHt4ZgutJ922/YdmXN2d6dkwFTR6KsyD02jcSYBXVDGdFC2YnsjKk/o9s3Yt9tYnYES6Et+6udPlAKcakzR5jQ==",
"dev": true,
"dependencies": {
- "hasha": "^5.0.0",
- "make-dir": "^3.0.0",
- "package-hash": "^4.0.0",
- "write-file-atomic": "^3.0.0"
+ "is-actual-promise": "^1.0.0",
+ "tcompare": "6.4.5",
+ "trivial-deferred": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/caching-transform/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==",
+ "node_modules/@tapjs/spawn": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.18.tgz",
+ "integrity": "sha512-E5H0NTyTZ0FnkPUd5JU3c2KrnjjMDDAuctRd2b0v/M5LB+uAlwwEEJJ6rh+dBsFK/yatfgPli+nbHZVjUz+Usw==",
"dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/@tapjs/stack": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.7.tgz",
+ "integrity": "sha512-7qUDWDmd+y7ZQ0vTrDTvFlWnJ+ND32NemS5HVuT1ZggHtBwJ62PQHIyCx/B5RopETBb6NvFPfUE21yTiex9Jkw==",
"dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/callsites": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz",
- "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==",
+ "node_modules/@tapjs/stdin": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.18.tgz",
+ "integrity": "sha512-UyhK8bRRhQkmBb7N/NFa/11DucHfIzCyyba7uax+dkuXSd6OccTZVxLpRMuaOUV59QCCFAJUJDQnmaWj35fI7Q==",
+ "dev": true,
"engines": {
- "node": ">=12.20"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "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,
+ "node_modules/@tapjs/test": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.4.0.tgz",
+ "integrity": "sha512-t4U11uAUDUeBQTdlqtiDoiuiG3lKLhHa+PxrdIR3GlG+2wDcpqFR8aFFiuq3XTvks0uoWjKx3WkAMyjNsxmikg==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5",
+ "@tapjs/after": "1.1.18",
+ "@tapjs/after-each": "1.1.18",
+ "@tapjs/asserts": "1.1.18",
+ "@tapjs/before": "1.1.18",
+ "@tapjs/before-each": "1.1.18",
+ "@tapjs/filter": "1.2.18",
+ "@tapjs/fixture": "1.2.18",
+ "@tapjs/intercept": "1.2.18",
+ "@tapjs/mock": "1.3.0",
+ "@tapjs/node-serialize": "1.3.0",
+ "@tapjs/snapshot": "1.2.18",
+ "@tapjs/spawn": "1.1.18",
+ "@tapjs/stdin": "1.1.18",
+ "@tapjs/typescript": "1.4.0",
+ "@tapjs/worker": "1.1.18",
+ "glob": "^10.3.10",
+ "jackspeak": "^2.3.6",
+ "mkdirp": "^3.0.0",
+ "resolve-import": "^1.4.5",
+ "rimraf": "^5.0.5",
+ "sync-content": "^1.0.1",
+ "tap-parser": "15.3.1",
+ "tshy": "^1.2.2",
+ "typescript": "5.2"
+ },
+ "bin": {
+ "generate-tap-test-class": "scripts/build.mjs"
+ },
"engines": {
- "node": ">=6"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "node_modules/@tapjs/test/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@tapjs/test/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001509",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz",
- "integrity": "sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==",
+ "node_modules/@tapjs/test/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/cbor": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.0.tgz",
- "integrity": "sha512-87cFgOKxjUOnGpNeQMBVER4Mc/rZAk9xC+Ygfx5FLCAUt/tpVHphuZC5fJmp/KSDsEsBEDIPtEt0YbD/GFQw8Q==",
"dependencies": {
- "nofilter": "^3.1.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=16"
- }
- },
- "node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "devOptional": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "node_modules/@tapjs/test/node_modules/rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+ "dev": true,
"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"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">=14"
},
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "node_modules/@tapjs/test/node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=14.17"
}
},
- "node_modules/chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "node_modules/@tapjs/typescript": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.0.tgz",
+ "integrity": "sha512-3b3pNI20Cf9NRMuT6GE288RESMYMcrwrKuj29Mroiy9MkLEyyPPHqeSRstvakn9/i/nhTlXj2YIftPo80H3OlQ==",
"dev": true,
- "peer": true,
+ "dependencies": {
+ "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5"
+ },
"engines": {
- "node": ">=6.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/chunkd": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz",
- "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ=="
- },
- "node_modules/ci-info": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
- "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
+ "node_modules/@tapjs/worker": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.18.tgz",
+ "integrity": "sha512-wxl/dXByMWk9FuYiiSzY/U5QU0oe9EWpf7pJ48feWsTTn42wihUHZT25kbleR4V2l68/SlTPlJkEsKnHjU27Pg==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "peerDependencies": {
+ "@tapjs/core": "1.5.0"
}
},
- "node_modules/ci-parallel-vars": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz",
- "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg=="
+ "node_modules/@tsconfig/node14": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz",
+ "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==",
+ "dev": true
},
- "node_modules/clean-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
- "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
+ "node_modules/@tsconfig/node16": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz",
+ "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node18": {
+ "version": "18.2.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz",
+ "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node20": {
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz",
+ "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==",
+ "dev": true
+ },
+ "node_modules/@tsd/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-CQlfzol0ldaU+ftWuG52vH29uRoKboLinLy84wS8TQOu+m+tWoaUfk4svL4ij2V8M5284KymJBlHUusKj6k34w==",
"dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
"engines": {
- "node": ">=4"
+ "node": ">=14.17"
}
},
- "node_modules/clean-regexp/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==",
+ "node_modules/@tufjs/canonical-json": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
+ "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
"dev": true,
"engines": {
- "node": ">=0.8.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/clean-stack": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
- "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
+ "node_modules/@tufjs/models": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz",
+ "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==",
"dev": true,
"dependencies": {
- "escape-string-regexp": "5.0.0"
+ "@tufjs/canonical-json": "2.0.0",
+ "minimatch": "^9.0.3"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/clean-yaml-object": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz",
- "integrity": "sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/@tufjs/models/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "node_modules/@tufjs/models/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
"dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "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==",
+ "node_modules/@types/eslint": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
+ "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==",
"dev": true,
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
+ "@types/estree": "*",
+ "@types/json-schema": "*"
}
},
- "node_modules/cliui/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==",
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "peer": true,
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
}
},
- "node_modules/cliui/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==",
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
- "node_modules/cliui/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/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true
},
- "node_modules/cliui/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==",
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
"dev": true,
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
+ "@types/istanbul-lib-coverage": "*"
}
},
- "node_modules/cliui/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==",
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
+ "@types/istanbul-lib-report": "*"
}
},
- "node_modules/code-excerpt": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz",
- "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==",
- "dependencies": {
- "convert-to-spaces": "^2.0.1"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.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==",
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"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==",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/common-path-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
- "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w=="
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"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=="
+ "node_modules/@types/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
+ "dev": true
},
- "node_modules/concordance": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz",
- "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==",
+ "node_modules/@types/node": {
+ "version": "20.11.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz",
+ "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==",
+ "dev": true,
"dependencies": {
- "date-time": "^3.1.0",
- "esutils": "^2.0.3",
- "fast-diff": "^1.2.0",
- "js-string-escape": "^1.0.1",
- "lodash": "^4.17.15",
- "md5-hex": "^3.0.1",
- "semver": "^7.3.2",
- "well-known-symbols": "^2.0.0"
- },
- "engines": {
- "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14"
+ "undici-types": "~5.26.4"
}
},
- "node_modules/confusing-browser-globals": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
- "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true
},
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ "node_modules/@types/semver": {
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
+ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+ "dev": true
},
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
"dev": true
},
- "node_modules/convert-to-spaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz",
- "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "node_modules/cosmiconfig": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
- "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz",
+ "integrity": "sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==",
"dev": true,
"dependencies": {
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0"
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/type-utils": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=14"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/d-fischer"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/cosmiconfig/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.1.tgz",
+ "integrity": "sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==",
"dev": true,
"dependencies": {
- "argparse": "^2.0.1"
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
+ "debug": "^4.3.4"
},
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": 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==",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz",
+ "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==",
"dev": true,
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1"
},
"engines": {
- "node": ">= 8"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz",
+ "integrity": "sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==",
"dev": true,
"dependencies": {
- "type-fest": "^1.0.1"
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=12"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/crypto-random-string/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz",
+ "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/currently-unhandled": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
- "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
- "dependencies": {
- "array-find-index": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/date-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz",
- "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz",
+ "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==",
+ "dev": true,
"dependencies": {
- "time-zone": "^1.0.0"
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
+ "node": "^16.0.0 || >=18.0.0"
},
- "engines": {
- "node": ">=6.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependenciesMeta": {
- "supports-color": {
+ "typescript": {
"optional": true
}
}
},
- "node_modules/debug/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=="
- },
- "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==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
"dependencies": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/decamelize-keys/node_modules/map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "node_modules/default-require-extensions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz",
- "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
- "strip-bom": "^4.0.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/define-lazy-prop": {
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.1.tgz",
+ "integrity": "sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==",
"dev": true,
"dependencies": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
- },
- "node_modules/detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/diff-sequences": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
- "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "^4.0.0"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz",
+ "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==",
"dev": true,
"dependencies": {
- "esutils": "^2.0.2"
+ "@typescript-eslint/types": "6.19.1",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.447",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.447.tgz",
- "integrity": "sha512-sxX0LXh+uL41hSJsujAN86PjhrV/6c79XmpY0TvjZStV6VxIgarf8SRkUoUTuYmFcZQTemsoqo8qXOGw5npWfw==",
- "dev": true
- },
- "node_modules/emittery": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz",
- "integrity": "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==",
- "engines": {
- "node": ">=14.16"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
},
- "node_modules/enhance-visitors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz",
- "integrity": "sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==",
- "dev": true,
+ "node_modules/@vercel/nft": {
+ "version": "0.26.2",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.2.tgz",
+ "integrity": "sha512-bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==",
"dependencies": {
- "lodash": "^4.13.1"
+ "@mapbox/node-pre-gyp": "^1.0.5",
+ "@rollup/pluginutils": "^4.0.0",
+ "acorn": "^8.6.0",
+ "acorn-import-attributes": "^1.9.2",
+ "async-sema": "^3.1.1",
+ "bindings": "^1.4.0",
+ "estree-walker": "2.0.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.2",
+ "node-gyp-build": "^4.2.2",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "nft": "out/cli.js"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=16"
}
},
- "node_modules/enhanced-resolve": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==",
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
+ "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
"dev": true,
+ "peer": true,
"dependencies": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.2.0",
- "tapable": "^0.1.8"
- },
- "engines": {
- "node": ">=0.6"
+ "@webassemblyjs/helper-numbers": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
}
},
- "node_modules/env-editor": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-1.1.0.tgz",
- "integrity": "sha512-7AXskzN6T7Q9TFcKAGJprUbpQa4i1VsAetO9rdBqbGMGlragTziBgWt4pVYJMBWHQlLoX0buy6WFikzPH4Qjpw==",
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+ "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
"dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "peer": true
},
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+ "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
"dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
+ "peer": true
},
- "node_modules/es-abstract": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
- "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
+ "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
"dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+ "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.0",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
- "is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.10",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "typed-array-length": "^1.0.4",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.9"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/es-module-lexer": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
- "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+ "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
"dev": true,
"peer": true
},
- "node_modules/es-set-tostringtag": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
+ "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
"dev": true,
+ "peer": true,
"dependencies": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6"
}
},
- "node_modules/es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+ "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "has": "^1.0.3"
+ "@xtuc/ieee754": "^1.2.0"
}
},
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+ "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
"dev": true,
+ "peer": true,
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "@xtuc/long": "4.2.2"
}
},
- "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==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint": {
- "version": "8.44.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz",
- "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.1.0",
- "@eslint/js": "8.44.0",
- "@humanwhocodes/config-array": "^0.11.10",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.6.0",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-prettier": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
- "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
- "dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-config-xo": {
- "version": "0.43.1",
- "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.43.1.tgz",
- "integrity": "sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ==",
- "dev": true,
- "dependencies": {
- "confusing-browser-globals": "1.0.11"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- },
- "peerDependencies": {
- "eslint": ">=8.27.0"
- }
- },
- "node_modules/eslint-formatter-pretty": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz",
- "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "^7.2.13",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.0",
- "eslint-rule-docs": "^1.1.5",
- "log-symbols": "^4.0.0",
- "plur": "^4.0.0",
- "string-width": "^4.2.0",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-formatter-pretty/node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/node_modules/plur": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
- "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
- "dev": true,
- "dependencies": {
- "irregular-plurals": "^3.2.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
- "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
- "dev": true,
- "dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.11.0",
- "resolve": "^1.22.1"
- }
- },
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-import-resolver-webpack": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.2.tgz",
- "integrity": "sha512-XodIPyg1OgE2h5BDErz3WJoK7lawxKTJNhgPNafRST6csC/MZC+L5P6kKqsZGRInpbgc02s/WZMrb4uGJzcuRg==",
- "dev": true,
- "dependencies": {
- "array-find": "^1.0.0",
- "debug": "^3.2.7",
- "enhanced-resolve": "^0.9.1",
- "find-root": "^1.1.0",
- "has": "^1.0.3",
- "interpret": "^1.4.0",
- "is-core-module": "^2.7.0",
- "is-regex": "^1.1.4",
- "lodash": "^4.17.21",
- "resolve": "^1.20.0",
- "semver": "^5.7.1"
- },
- "engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "eslint-plugin-import": ">=1.4.0",
- "webpack": ">=1.11.0"
- }
- },
- "node_modules/eslint-import-resolver-webpack/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-import-resolver-webpack/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
- "dev": true,
- "dependencies": {
- "debug": "^3.2.7"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- }
- }
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+ "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
+ "dev": true,
+ "peer": true
},
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
+ "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
"dev": true,
+ "peer": true,
"dependencies": {
- "ms": "^2.1.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/helper-wasm-section": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-opt": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6",
+ "@webassemblyjs/wast-printer": "1.11.6"
}
},
- "node_modules/eslint-plugin-ava": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-14.0.0.tgz",
- "integrity": "sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==",
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
+ "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
"dev": true,
+ "peer": true,
"dependencies": {
- "enhance-visitors": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "espree": "^9.0.0",
- "espurify": "^2.1.1",
- "import-modules": "^2.1.0",
- "micro-spelling-correcter": "^1.1.1",
- "pkg-dir": "^5.0.0",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=14.17 <15 || >=16.4"
- },
- "peerDependencies": {
- "eslint": ">=8.26.0"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
- "node_modules/eslint-plugin-ava/node_modules/pkg-dir": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
+ "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
"dev": true,
+ "peer": true,
"dependencies": {
- "find-up": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.11.6",
+ "@webassemblyjs/wasm-parser": "1.11.6"
}
},
- "node_modules/eslint-plugin-es": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz",
- "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==",
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
+ "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
"dev": true,
+ "peer": true,
"dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
+ "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
}
},
- "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
+ "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
"dev": true,
+ "peer": true,
"dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "@webassemblyjs/ast": "1.11.6",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
"dev": true,
- "engines": {
- "node": ">=4"
- }
+ "peer": true
},
- "node_modules/eslint-plugin-eslint-comments": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
- "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==",
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5",
- "ignore": "^5.0.5"
- },
- "engines": {
- "node": ">=6.5.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
+ "peer": true
},
- "node_modules/eslint-plugin-eslint-comments/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/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
- "node_modules/eslint-plugin-import": {
- "version": "2.27.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
- "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
- "dev": true,
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "array.prototype.flatmap": "^1.3.1",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.7",
- "eslint-module-utils": "^2.7.4",
- "has": "^1.0.3",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.values": "^1.1.6",
- "resolve": "^1.22.1",
- "semver": "^6.3.0",
- "tsconfig-paths": "^3.14.1"
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
+ "node": ">=0.4.0"
}
},
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "node_modules/acorn-import-assertions": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+ "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
"dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^8"
}
},
- "node_modules/eslint-plugin-import/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/acorn-import-attributes": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.2.tgz",
+ "integrity": "sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==",
+ "peerDependencies": {
+ "acorn": "^8"
}
},
- "node_modules/eslint-plugin-n": {
- "version": "15.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
- "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
- "dependencies": {
- "builtins": "^5.0.1",
- "eslint-plugin-es": "^4.1.0",
- "eslint-utils": "^3.0.0",
- "ignore": "^5.1.1",
- "is-core-module": "^2.11.0",
- "minimatch": "^3.1.2",
- "resolve": "^1.22.1",
- "semver": "^7.3.8"
- },
- "engines": {
- "node": ">=12.22.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
"peerDependencies": {
- "eslint": ">=7.0.0"
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/eslint-plugin-no-use-extend-native": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz",
- "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==",
- "dev": true,
- "dependencies": {
- "is-get-set-prop": "^1.0.0",
- "is-js-type": "^2.0.0",
- "is-obj-prop": "^1.0.0",
- "is-proto-prop": "^2.0.0"
- },
+ "node_modules/acorn-walk": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=0.4.0"
}
},
- "node_modules/eslint-plugin-prettier": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
- "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
- "dev": true,
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dependencies": {
- "prettier-linter-helpers": "^1.0.0"
+ "debug": "4"
},
"engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "eslint": ">=7.28.0",
- "prettier": ">=2.0.0"
- },
- "peerDependenciesMeta": {
- "eslint-config-prettier": {
- "optional": true
- }
+ "node": ">= 6.0.0"
}
},
- "node_modules/eslint-plugin-unicorn": {
- "version": "46.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.1.tgz",
- "integrity": "sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==",
+ "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": {
- "@babel/helper-validator-identifier": "^7.19.1",
- "@eslint-community/eslint-utils": "^4.1.2",
- "ci-info": "^3.6.1",
- "clean-regexp": "^1.0.0",
- "esquery": "^1.4.0",
- "indent-string": "^4.0.0",
- "is-builtin-module": "^3.2.0",
- "jsesc": "^3.0.2",
- "lodash": "^4.17.21",
- "pluralize": "^8.0.0",
- "read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "regjsparser": "^0.9.1",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.8",
- "strip-indent": "^3.0.0"
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
},
"engines": {
- "node": ">=14.18"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
- },
- "peerDependencies": {
- "eslint": ">=8.28.0"
+ "node": ">=8"
}
},
- "node_modules/eslint-plugin-unicorn/node_modules/indent-string": {
+ "node_modules/aggregate-error/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==",
@@ -3429,510 +2856,521 @@
"node": ">=8"
}
},
- "node_modules/eslint-plugin-unicorn/node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/eslint-rule-docs": {
- "version": "1.1.235",
- "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz",
- "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==",
- "dev": true
- },
- "node_modules/eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "peer": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
}
},
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "node_modules/ansi-escapes": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
+ "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^2.0.0"
+ "type-fest": "^3.0.0"
},
"engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ "node": ">=14.16"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
+ "node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=12"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/eslint/node_modules/@eslint/eslintrc": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz",
- "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
+ "node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=12"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/eslint/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==",
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 8"
}
},
- "node_modules/eslint/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==",
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
"engines": {
- "node": ">=8"
+ "node": ">=8.6"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/eslint/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "node_modules/aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
},
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
+ "node_modules/are-we-there-yet": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "delegates": "^1.0.0",
+ "readable-stream": "^3.6.0"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/eslint/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,
+ "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==",
"dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/eslint/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/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
"engines": {
- "node": ">=10.13.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
"dev": true,
"dependencies": {
- "type-fest": "^0.20.2"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/eslint/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array.prototype.find": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.2.tgz",
+ "integrity": "sha512-DRumkfW97iZGOfn+lIXbkVrXL04sfYKX+EfOodo8XboR5sxPDVvOjZTF/rysusa9lmhmSOeD6Vp6RKQP+eP4Tg==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/esm-utils": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-4.1.2.tgz",
- "integrity": "sha512-hYKPzOCkAU11rMIiH6gvvReARaSLiRhJkGWPcwJB/S4zg7em//YKAcRxwZYw4sW5mRmI6lhV59wWWTdWKwOXvQ==",
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
"dependencies": {
- "import-meta-resolve": "2.2.2",
- "url-or-path": "2.1.0"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/fisker/esm-utils?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/espree": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz",
- "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==",
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
"dev": true,
"dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
+ "node_modules/arrgv": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz",
+ "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==",
"engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/espurify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.1.1.tgz",
- "integrity": "sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==",
- "dev": true
+ "node_modules/arrify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
+ "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "node_modules/async-hook-domain": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-4.0.1.tgz",
+ "integrity": "sha512-bSktexGodAjfHWIrSrrqxqWzf1hWBZBpmPNZv+TYUMyWa2eoefFc6q6H1+KtdHYSz35lrhWdmXt/XK9wNEZvww==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
"engines": {
- "node": ">=0.10"
+ "node": ">=16"
}
},
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "node_modules/async-sema": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz",
+ "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg=="
+ },
+ "node_modules/auto-bind": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz",
+ "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==",
"dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
"engines": {
- "node": ">=4.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
"dev": true,
"engines": {
- "node": ">=4.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ "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=="
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "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": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.8.x"
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
}
},
- "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/blueimp-md5": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
+ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
},
- "node_modules/execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
- "dev": true,
+ "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==",
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/expect": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
- "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
- "dev": true,
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dependencies": {
- "@jest/expect-utils": "^29.5.0",
- "jest-get-type": "^29.4.3",
- "jest-matcher-utils": "^29.5.0",
- "jest-message-util": "^29.5.0",
- "jest-util": "^29.5.0"
+ "fill-range": "^7.0.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-diff": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
- "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
- },
- "node_modules/fast-glob": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
- "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
+ "node_modules/browserslist": {
+ "version": "4.22.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
+ "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "peer": true,
"dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "caniuse-lite": "^1.0.30001580",
+ "electron-to-chromium": "^1.4.648",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "bin": {
+ "browserslist": "cli.js"
},
"engines": {
- "node": ">=8.6.0"
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "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,
+ "peer": true
},
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "node_modules/builtins": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
+ "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
+ "dev": true,
"dependencies": {
- "reusify": "^1.0.4"
+ "semver": "^7.0.0"
}
},
- "node_modules/figures": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
- "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
+ "node_modules/c8": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz",
+ "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==",
+ "dev": true,
"dependencies": {
- "escape-string-regexp": "^5.0.0",
- "is-unicode-supported": "^1.2.0"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^3.1.1",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-reports": "^3.1.6",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1"
},
- "engines": {
- "node": ">=14"
+ "bin": {
+ "c8": "bin/c8.js"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=14.14.0"
}
},
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "node_modules/cacache": {
+ "version": "18.0.2",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz",
+ "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==",
"dev": true,
"dependencies": {
- "flat-cache": "^3.0.4"
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ "node_modules/cacache/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
},
- "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==",
+ "node_modules/cacache/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "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==",
+ "node_modules/cacache/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/cacache/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/find-root": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
- "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
- "dev": true
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "node_modules/cacache/node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
"dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
+ "aggregate-error": "^3.0.0"
},
"engines": {
"node": ">=10"
@@ -3941,672 +3379,635 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "node_modules/call-bind": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.1",
+ "set-function-length": "^1.1.1"
},
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
+ "node_modules/callsites": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.1.0.tgz",
+ "integrity": "sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "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,
- "dependencies": {
- "is-callable": "^1.1.3"
+ "engines": {
+ "node": ">=6"
}
},
- "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==",
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
"dev": true,
"dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^3.0.2"
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001581",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz",
+ "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==",
"dev": true,
"funding": [
{
- "type": "github",
- "url": "https://github.com/sponsors/feross"
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
},
{
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
},
{
- "type": "consulting",
- "url": "https://feross.org/support"
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
- ]
- },
- "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
+ ],
+ "peer": true
},
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "node_modules/cbor": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.1.tgz",
+ "integrity": "sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==",
"dependencies": {
- "minipass": "^3.0.0"
+ "nofilter": "^3.1.0"
},
"engines": {
- "node": ">= 8"
- }
- },
- "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=="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "node": ">=16"
}
},
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "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/function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
- },
+ "node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"engines": {
- "node": ">= 0.4"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/gauge/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==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/gauge/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=="
- },
- "node_modules/gauge/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==",
- "engines": {
- "node": ">=8"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/gauge/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==",
+ "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": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "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"
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
- "node_modules/gauge/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==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "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==",
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
"dev": true,
+ "peer": true,
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6.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==",
+ "node_modules/chunkd": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz",
+ "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ=="
+ },
+ "node_modules/ci-info": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
"engines": {
- "node": "6.* || 8.* || >= 10.*"
+ "node": ">=8"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "node_modules/ci-parallel-vars": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz",
+ "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg=="
+ },
+ "node_modules/clean-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
+ "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
"dev": true,
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
+ "escape-string-regexp": "^1.0.5"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=4"
}
},
- "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==",
+ "node_modules/clean-regexp/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": ">=8.0.0"
+ "node": ">=0.8.0"
}
},
- "node_modules/get-set-props": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz",
- "integrity": "sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==",
+ "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": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/get-stdin": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
- "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
+ "node_modules/cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "node_modules/cli-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
"dev": true,
+ "dependencies": {
+ "restore-cursor": "^4.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dev": true,
+ "node_modules/cli-truncate": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "slice-ansi": "^5.0.0",
+ "string-width": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/get-tsconfig": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz",
- "integrity": "sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==",
- "dev": true,
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dependencies": {
- "resolve-pkg-maps": "^1.0.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "node_modules/cliui/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/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==",
"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"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": "*"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "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==",
+ "node_modules/cliui/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==",
"dependencies": {
- "is-glob": "^4.0.1"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 6"
+ "node": ">=7.0.0"
}
},
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true,
- "peer": true
+ "node_modules/cliui/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=="
},
- "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,
+ "node_modules/cliui/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=="
+ },
+ "node_modules/cliui/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==",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dev": true,
+ "node_modules/cliui/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==",
"dependencies": {
- "define-properties": "^1.1.3"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/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==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/globby": {
- "version": "13.2.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.1.tgz",
- "integrity": "sha512-DPCBxctI7dN4EeIqjW2KGqgdcUMbrhJ9AzON+PlxCtvppWhubTLD4+a0GFxiym14ZvacUydTPjLPc2DlKz7EIg==",
+ "node_modules/cliui/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==",
"dependencies": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/globby/node_modules/slash": {
+ "node_modules/code-excerpt": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "engines": {
- "node": ">=12"
+ "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz",
+ "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==",
+ "dependencies": {
+ "convert-to-spaces": "^2.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "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": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "color-name": "1.1.3"
}
},
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "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/hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "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==",
+ "bin": {
+ "color-support": "bin.js"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true,
+ "peer": true
+ },
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/concordance": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz",
+ "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==",
"dependencies": {
- "function-bind": "^1.1.1"
+ "date-time": "^3.1.0",
+ "esutils": "^2.0.3",
+ "fast-diff": "^1.2.0",
+ "js-string-escape": "^1.0.1",
+ "lodash": "^4.17.15",
+ "md5-hex": "^3.0.1",
+ "semver": "^7.3.2",
+ "well-known-symbols": "^2.0.0"
},
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14"
}
},
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "node_modules/confusing-browser-globals": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+ "dev": true
},
- "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,
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/convert-to-spaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz",
+ "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==",
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.1.1"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "node_modules/cosmiconfig/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/cosmiconfig/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "argparse": "^2.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "node_modules/cosmiconfig/node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "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": {
- "has-symbols": "^1.0.2"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 8"
}
},
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
- },
- "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==",
+ "node_modules/crypto-random-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
+ "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
"dev": true,
"dependencies": {
- "is-stream": "^2.0.0",
- "type-fest": "^0.8.0"
+ "type-fest": "^1.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/hasha/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==",
+ "node_modules/crypto-random-string/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/hasha/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/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
+ "node_modules/currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
"dependencies": {
- "lru-cache": "^6.0.0"
+ "array-find-index": "^1.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
}
},
- "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/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "node_modules/date-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz",
+ "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==",
"dependencies": {
- "agent-base": "6",
- "debug": "4"
+ "time-zone": "^1.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=6"
}
},
- "node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true,
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
"engines": {
- "node": ">=14.18.0"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "engines": {
- "node": ">= 4"
- }
+ "node_modules/debug/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=="
},
- "node_modules/ignore-by-default": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz",
- "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==",
+ "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": ">=10 <11 || >=12 <13 || >=14"
+ "node": ">=0.10.0"
}
},
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-fresh/node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/import-meta-resolve": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
- "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
},
- "node_modules/import-modules": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz",
- "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==",
+ "node_modules/define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
- "node": ">=0.8.19"
+ "node": ">= 0.4"
}
},
- "node_modules/indent-string": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
- "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
"engines": {
"node": ">=12"
},
@@ -4614,262 +4015,280 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
- "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=="
- },
- "node_modules/internal-slot": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
},
- "node_modules/irregular-plurals": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
- "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
+ "node_modules/detect-libc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"engines": {
"node": ">=8"
}
},
- "node_modules/is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "node_modules/diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
"dev": true,
- "dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.3.1"
}
},
- "node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
"dependencies": {
- "has-bigints": "^1.0.1"
+ "path-type": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "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==",
- "devOptional": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
+ "node_modules/dir-glob/node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "esutils": "^2.0.2"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6.0.0"
}
},
- "node_modules/is-builtin-module": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
- "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.648",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz",
+ "integrity": "sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==",
"dev": true,
- "dependencies": {
- "builtin-modules": "^3.3.0"
- },
+ "peer": true
+ },
+ "node_modules/emittery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz",
+ "integrity": "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==",
"engines": {
- "node": ">=6"
+ "node": ">=14.16"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
}
},
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "node_modules/emoji-regex": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw=="
+ },
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/enhance-visitors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz",
+ "integrity": "sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "lodash": "^4.13.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=4.0.0"
}
},
- "node_modules/is-core-module": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
- "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+ "node_modules/enhanced-resolve": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
+ "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.2.0",
+ "tapable": "^0.1.8"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=0.6"
}
},
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/env-editor": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-1.1.0.tgz",
+ "integrity": "sha512-7AXskzN6T7Q9TFcKAGJprUbpQa4i1VsAetO9rdBqbGMGlragTziBgWt4pVYJMBWHQlLoX0buy6WFikzPH4Qjpw==",
"dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
"engines": {
- "node": ">= 0.4"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-docker": {
+ "node_modules/env-paths": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6"
}
},
- "node_modules/is-error": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz",
- "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==",
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
"dev": true
},
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
}
},
- "node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "node_modules/es-abstract": {
+ "version": "1.22.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+ "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.5",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.2",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.13"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-get-set-prop": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz",
- "integrity": "sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==",
+ "node_modules/es-module-lexer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz",
+ "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==",
"dev": true,
- "dependencies": {
- "get-set-props": "^0.1.0",
- "lowercase-keys": "^1.0.0"
- }
+ "peer": true
},
- "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==",
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+ "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "dev": true,
"dependencies": {
- "is-extglob": "^2.1.1"
+ "get-intrinsic": "^1.2.2",
+ "has-tostringtag": "^1.0.0",
+ "hasown": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
}
},
- "node_modules/is-js-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz",
- "integrity": "sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==",
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
"dev": true,
"dependencies": {
- "js-types": "^1.0.0"
- }
- },
- "node_modules/is-negated-glob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
- "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "hasown": "^2.0.0"
}
},
- "node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -4877,637 +4296,743 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"engines": {
- "node": ">=0.12.0"
+ "node": ">=6"
}
},
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"engines": {
- "node": ">= 0.4"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-obj-prop": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz",
- "integrity": "sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==",
+ "node_modules/eslint": {
+ "version": "8.56.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
+ "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
"dev": true,
"dependencies": {
- "lowercase-keys": "^1.0.0",
- "obj-props": "^1.0.0"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.56.0",
+ "@humanwhocodes/config-array": "^0.11.13",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
"engines": {
- "node": ">=8"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "node_modules/eslint-compat-utils": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
+ "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
}
},
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/eslint-config-prettier": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/is-promise": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
- "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="
- },
- "node_modules/is-proto-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz",
- "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==",
+ "node_modules/eslint-config-xo": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.43.1.tgz",
+ "integrity": "sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ==",
"dev": true,
"dependencies": {
- "lowercase-keys": "^1.0.0",
- "proto-props": "^2.0.0"
+ "confusing-browser-globals": "1.0.11"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.27.0"
}
},
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "node_modules/eslint-config-xo-typescript": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-1.0.1.tgz",
+ "integrity": "sha512-vPQssnRSUgBFOEfB/KY12CXwltwFSn4RSCfa+w7gjBC2PFQ7Yfgmyei+1XUZ3K+8LRGef2NMJUcxts7PldhDjg==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
"engines": {
- "node": ">= 0.4"
+ "node": ">=16"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": ">=6.0.0",
+ "@typescript-eslint/parser": ">=6.0.0",
+ "eslint": ">=8.0.0",
+ "typescript": ">=4.7"
}
},
- "node_modules/is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "node_modules/eslint-formatter-pretty": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz",
+ "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==",
"dev": true,
"dependencies": {
- "is-unc-path": "^1.0.0"
+ "@types/eslint": "^7.2.13",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "eslint-rule-docs": "^1.1.5",
+ "log-symbols": "^4.0.0",
+ "plur": "^4.0.0",
+ "string-width": "^4.2.0",
+ "supports-hyperlinks": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "node_modules/eslint-formatter-pretty/node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "node_modules/eslint-formatter-pretty/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": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "node_modules/eslint-formatter-pretty/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": {
- "has-tostringtag": "^1.0.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "node_modules/eslint-formatter-pretty/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
- "has-symbols": "^1.0.2"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "node_modules/eslint-formatter-pretty/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": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=7.0.0"
}
},
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "node_modules/eslint-formatter-pretty/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/is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "node_modules/eslint-formatter-pretty/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/eslint-formatter-pretty/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,
- "dependencies": {
- "unc-path-regex": "^0.1.2"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "node_modules/eslint-formatter-pretty/node_modules/plur": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
+ "dev": true,
+ "dependencies": {
+ "irregular-plurals": "^3.2.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "node_modules/eslint-formatter-pretty/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": {
- "call-bind": "^1.0.2"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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": ">=8"
}
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "node_modules/eslint-formatter-pretty/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": {
- "is-docker": "^2.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "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==",
+ "node_modules/eslint-formatter-pretty/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"dependencies": {
- "append-transform": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
}
},
- "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==",
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"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"
+ "ms": "^2.1.1"
}
},
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "node_modules/eslint-import-resolver-node/node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
"bin": {
- "semver": "bin/semver.js"
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "node_modules/eslint-import-resolver-webpack": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.8.tgz",
+ "integrity": "sha512-Y7WIaXWV+Q21Rz/PJgUxiW/FTBOWmU8NTLdz+nz9mMoiz5vAev/fOaQxwD7qRzTfE3HSm1qsxZ5uRd7eX+VEtA==",
"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"
+ "array.prototype.find": "^2.2.2",
+ "debug": "^3.2.7",
+ "enhanced-resolve": "^0.9.1",
+ "find-root": "^1.1.0",
+ "hasown": "^2.0.0",
+ "interpret": "^1.4.0",
+ "is-core-module": "^2.13.1",
+ "is-regex": "^1.1.4",
+ "lodash": "^4.17.21",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^5.7.2"
},
"engines": {
- "node": ">=8"
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "eslint-plugin-import": ">=1.4.0",
+ "webpack": ">=1.11.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-webpack/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
}
},
- "node_modules/istanbul-lib-processinfo/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==",
+ "node_modules/eslint-import-resolver-webpack/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
"dev": true,
"dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "debug": "^3.2.7"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
}
},
- "node_modules/istanbul-lib-processinfo/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==",
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "ms": "^2.1.1"
}
},
- "node_modules/istanbul-lib-processinfo/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==",
+ "node_modules/eslint-plugin-ava": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-14.0.0.tgz",
+ "integrity": "sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==",
"dev": true,
+ "dependencies": {
+ "enhance-visitors": "^1.0.0",
+ "eslint-utils": "^3.0.0",
+ "espree": "^9.0.0",
+ "espurify": "^2.1.1",
+ "import-modules": "^2.1.0",
+ "micro-spelling-correcter": "^1.1.1",
+ "pkg-dir": "^5.0.0",
+ "resolve-from": "^5.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=14.17 <15 || >=16.4"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.26.0"
}
},
- "node_modules/istanbul-lib-processinfo/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==",
+ "node_modules/eslint-plugin-es-x": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
+ "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
"dev": true,
"dependencies": {
- "aggregate-error": "^3.0.0"
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.1.2"
},
"engines": {
- "node": ">=8"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
+ },
+ "peerDependencies": {
+ "eslint": ">=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==",
+ "node_modules/eslint-plugin-eslint-comments": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
+ "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==",
"dev": true,
"dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
+ "escape-string-regexp": "^1.0.5",
+ "ignore": "^5.0.5"
},
"engines": {
- "node": ">=8"
+ "node": ">=6.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
}
},
- "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==",
+ "node_modules/eslint-plugin-eslint-comments/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,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
"engines": {
- "node": ">=10"
+ "node": ">=0.8.0"
}
},
- "node_modules/istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "node_modules/eslint-plugin-import": {
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
"dev": true,
"dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
+ "has": "^1.0.3",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
+ "tsconfig-paths": "^3.14.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
}
},
- "node_modules/jackspeak": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.2.tgz",
- "integrity": "sha512-GHeGTmnuaHnvS+ZctRB01bfxARuu9wW83ENbuiweu07SFcVlZrJpcshSre/keGT7YGBhLHg/+rXCNSrsEHKU4Q==",
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"dependencies": {
- "cliui": "^7.0.4"
- },
- "engines": {
- "node": ">=8"
+ "ms": "^2.1.1"
}
},
- "node_modules/jest-diff": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
- "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.4.3",
- "jest-get-type": "^29.4.3",
- "pretty-format": "^29.5.0"
+ "esutils": "^2.0.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/jest-diff/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==",
+ "node_modules/eslint-plugin-import/node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
- "engines": {
- "node": ">=8"
+ "bin": {
+ "resolve": "bin/resolve"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/jest-diff/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-plugin-n": {
+ "version": "16.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "builtins": "^5.0.1",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^13.24.0",
+ "ignore": "^5.2.4",
+ "is-builtin-module": "^3.2.1",
+ "is-core-module": "^2.12.1",
+ "minimatch": "^3.1.2",
+ "resolve": "^1.22.2",
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=10"
+ "node": ">=16.0.0"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/jest-diff/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==",
+ "node_modules/eslint-plugin-n/node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-diff/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/jest-get-type": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
- "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/jest-matcher-utils": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
- "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
+ "node_modules/eslint-plugin-no-use-extend-native": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz",
+ "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==",
"dev": true,
"dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.5.0",
- "jest-get-type": "^29.4.3",
- "pretty-format": "^29.5.0"
+ "is-get-set-prop": "^1.0.0",
+ "is-js-type": "^2.0.0",
+ "is-obj-prop": "^1.0.0",
+ "is-proto-prop": "^2.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/jest-matcher-utils/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==",
+ "node_modules/eslint-plugin-unicorn": {
+ "version": "48.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz",
+ "integrity": "sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "ci-info": "^3.8.0",
+ "clean-regexp": "^1.0.0",
+ "esquery": "^1.5.0",
+ "indent-string": "^4.0.0",
+ "is-builtin-module": "^3.2.1",
+ "jsesc": "^3.0.2",
+ "lodash": "^4.17.21",
+ "pluralize": "^8.0.0",
+ "read-pkg-up": "^7.0.1",
+ "regexp-tree": "^0.1.27",
+ "regjsparser": "^0.10.0",
+ "semver": "^7.5.4",
+ "strip-indent": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=16"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.44.0"
}
},
- "node_modules/jest-matcher-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/eslint-plugin-unicorn/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=8"
}
},
- "node_modules/jest-matcher-utils/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==",
+ "node_modules/eslint-plugin-unicorn/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,
- "dependencies": {
- "color-name": "~1.1.4"
- },
"engines": {
- "node": ">=7.0.0"
+ "node": ">=8"
}
},
- "node_modules/jest-matcher-utils/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==",
+ "node_modules/eslint-rule-docs": {
+ "version": "1.1.235",
+ "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz",
+ "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==",
"dev": true
},
- "node_modules/jest-message-util": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
- "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.5.0",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.5.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/jest-message-util/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==",
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "eslint-visitor-keys": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
}
},
- "node_modules/jest-message-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
- "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/jest-message-util/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==",
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
"engines": {
- "node": ">=7.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/jest-message-util/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/jest-util": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
- "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
+ "node_modules/eslint/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,
- "dependencies": {
- "@jest/types": "^29.5.0",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/jest-util/node_modules/ansi-styles": {
+ "node_modules/eslint/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==",
@@ -5522,7 +5047,13 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-util/node_modules/chalk": {
+ "node_modules/eslint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
@@ -5538,7 +5069,7 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/jest-util/node_modules/color-convert": {
+ "node_modules/eslint/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==",
@@ -5550,430 +5081,360 @@
"node": ">=7.0.0"
}
},
- "node_modules/jest-util/node_modules/color-name": {
+ "node_modules/eslint/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/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
- "peer": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/js-string-escape": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
- "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
- "engines": {
- "node": ">= 0.8"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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-types": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz",
- "integrity": "sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==",
+ "node_modules/eslint/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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==",
"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/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
+ "is-glob": "^4.0.3"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
- "dev": true
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=10.13.0"
}
},
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/eslint/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "argparse": "^2.0.1"
},
- "engines": {
- "node": ">= 0.8.0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/libtap": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.1.tgz",
- "integrity": "sha512-S9v19shLTigoMn3c02V7LZ4t09zxmVP3r3RbEAwuHFYeKgF+ESFJxoQ0PMFKW4XdgQhcjVBEwDoopG6WROq/gw==",
+ "node_modules/eslint/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": {
- "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"
+ "ansi-regex": "^5.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/libtap/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": ">=8"
}
},
- "node_modules/line-column-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-3.0.0.tgz",
- "integrity": "sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==",
+ "node_modules/esm-utils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-4.2.1.tgz",
+ "integrity": "sha512-a7t8pDmZ5MeYfo2pM5EcqeU+BqKobUFKnWkM17JOhTlR88OSosLa9Ak4bgm+htoF15HRf7tfrXNR62UogmIODg==",
"dev": true,
"dependencies": {
- "type-fest": "^2.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "import-meta-resolve": "^4.0.0",
+ "url-or-path": "^2.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/fisker/esm-utils?sponsor=1"
}
},
- "node_modules/line-column-path/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
"engines": {
- "node": ">=12.20"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/load-json-file": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz",
- "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.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==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "node_modules/espurify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.1.1.tgz",
+ "integrity": "sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==",
+ "dev": true
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
- "peer": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
"engines": {
- "node": ">=6.11.5"
+ "node": ">=0.10"
}
},
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"dependencies": {
- "p-locate": "^5.0.0"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4.0"
}
},
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "dev": true
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
},
- "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/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
},
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "node_modules/events-to-array": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-2.0.3.tgz",
+ "integrity": "sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==",
"dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=12"
}
},
- "node_modules/log-symbols/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==",
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=16.17"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/log-symbols/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/log-symbols/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,
+ "node_modules/exponential-backoff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
+ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==",
+ "dev": true
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dependencies": {
- "color-name": "~1.1.4"
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=8.6.0"
}
},
- "node_modules/log-symbols/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==",
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
},
- "node_modules/log-symbols/node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
+ "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/figures": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-6.0.1.tgz",
+ "integrity": "sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==",
+ "dependencies": {
+ "is-unicode-supported": "^2.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "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==",
"dependencies": {
- "yallist": "^4.0.0"
+ "to-regex-range": "^5.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "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==",
+ "node_modules/find-cache-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
+ "dev": true,
"dependencies": {
- "semver": "^6.0.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-dir/node_modules/semver": {
+ "node_modules/find-cache-dir/node_modules/find-up": {
"version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
"dependencies": {
- "p-defer": "^1.0.0"
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
},
"engines": {
- "node": ">=6"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
"dev": true,
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/matcher": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz",
- "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==",
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
"dependencies": {
- "escape-string-regexp": "^5.0.0"
+ "yocto-queue": "^1.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
@@ -5982,56 +5443,71 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/md5-hex": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
- "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==",
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
"dependencies": {
- "blueimp-md5": "^2.10.0"
+ "p-limit": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/mem": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz",
- "integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==",
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
"dependencies": {
- "map-age-cleaner": "^0.1.3",
- "mimic-fn": "^4.0.0"
+ "find-up": "^6.3.0"
},
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
"engines": {
"node": ">=12.20"
},
"funding": {
- "url": "https://github.com/sindresorhus/mem?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/memory-fs": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
- "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==",
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
"dev": true
},
- "node_modules/meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
"node": ">=10"
@@ -6040,728 +5516,885 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
- "dev": true,
+ "node_modules/find-up-simple": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz",
+ "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==",
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
"engines": {
- "node": ">= 8"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/micro-spelling-correcter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz",
- "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==",
+ "node_modules/flatted": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
"dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
+ "is-callable": "^1.1.3"
}
},
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "node_modules/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"dev": true,
- "peer": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "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-minipass": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
+ "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
"dev": true,
- "peer": true,
"dependencies": {
- "mime-db": "1.52.0"
+ "minipass": "^7.0.3"
},
"engines": {
- "node": ">= 0.6"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "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=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/function-loop": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-4.0.0.tgz",
+ "integrity": "sha512-f34iQBedYF3XcI93uewZZOnyscDragxgTK/eTvVB74k3fCD0ZorOi5BV9GS4M8rz/JoNi0Kl3qX5Y9MH3S/CLQ==",
+ "dev": true
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
},
"engines": {
- "node": "*"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dev": true,
+ "node_modules/gauge": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
"dependencies": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.2",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.1",
+ "object-assign": "^4.1.1",
+ "signal-exit": "^3.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.2"
},
"engines": {
- "node": ">= 6"
+ "node": ">=10"
}
},
- "node_modules/minimist-options/node_modules/arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true,
+ "node_modules/gauge/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==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
+ "node_modules/gauge/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=="
+ },
+ "node_modules/gauge/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==",
"engines": {
"node": ">=8"
}
},
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "node_modules/gauge/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=="
+ },
+ "node_modules/gauge/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==",
"dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "bin": {
- "mkdirp": "bin/cmd.js"
+ "node_modules/gauge/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==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "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==",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
},
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "peer": true
+ "node_modules/get-east-asian-width": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz",
+ "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/nise": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
- "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
+ "node_modules/get-intrinsic": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
"dev": true,
"dependencies": {
- "@sinonjs/commons": "^2.0.0",
- "@sinonjs/fake-timers": "^10.0.2",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "path-to-regexp": "^1.7.0"
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nise/node_modules/@sinonjs/commons": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
- "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "node_modules/get-set-props": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz",
+ "integrity": "sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==",
"dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
+ "node_modules/get-stdin": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
+ "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
+ "dev": true,
"engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
+ "node": ">=12"
},
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/node-gyp-build": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
- "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
"dev": true,
"dependencies": {
- "process-on-spawn": "^1.0.0"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
- "dev": true
- },
- "node_modules/nofilter": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
- "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
- "engines": {
- "node": ">=12.19"
+ "node_modules/get-tsconfig": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
+ "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+ "dev": true,
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
+ "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": ">=6"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
+ "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==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">= 6"
}
},
- "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==",
- "devOptional": true,
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "peer": true
},
- "node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"dependencies": {
- "path-key": "^4.0.0"
+ "type-fest": "^0.20.2"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/npm-run-path/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "node_modules/globals/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
"dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nyc": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
- "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
- "dev": true,
+ "node_modules/globby": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz",
+ "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==",
"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"
+ "@sindresorhus/merge-streams": "^1.0.0",
+ "fast-glob": "^3.3.2",
+ "ignore": "^5.2.4",
+ "path-type": "^5.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.1.0"
},
"engines": {
- "node": ">=8.9"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/nyc/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==",
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dev": true,
"dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "get-intrinsic": "^1.1.3"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/nyc/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==",
+ "node_modules/has": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/nyc/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==",
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "get-intrinsic": "^1.2.2"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nyc/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==",
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nyc/node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dev": true,
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nyc/node_modules/color-convert": {
+ "node_modules/has-unicode": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
+ },
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">= 0.4"
}
},
- "node_modules/nyc/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==",
+ "node_modules/hosted-git-info": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "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/nyc/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==",
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
"dev": true
},
- "node_modules/nyc/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==",
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
"dev": true,
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/nyc/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==",
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/nyc/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,
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 6"
}
},
- "node_modules/nyc/node_modules/locate-path": {
+ "node_modules/human-signals": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=16.17.0"
}
},
- "node_modules/nyc/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,
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "optional": true,
"dependencies": {
- "p-try": "^2.0.0"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+ "engines": {
+ "node": ">= 4"
}
},
- "node_modules/nyc/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"
- },
+ "node_modules/ignore-by-default": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz",
+ "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==",
"engines": {
- "node": ">=8"
+ "node": ">=10 <11 || >=12 <13 || >=14"
}
},
- "node_modules/nyc/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==",
+ "node_modules/ignore-walk": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz",
+ "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==",
"dev": true,
"dependencies": {
- "aggregate-error": "^3.0.0"
+ "minimatch": "^9.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/nyc/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==",
+ "node_modules/ignore-walk/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/nyc/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==",
+ "node_modules/ignore-walk/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/nyc/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==",
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/nyc/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/nyc/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==",
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"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": ">=4"
}
},
- "node_modules/nyc/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==",
+ "node_modules/import-meta-resolve": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
+ "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
"dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/obj-props": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.4.0.tgz",
- "integrity": "sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==",
+ "node_modules/import-modules": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz",
+ "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.8.19"
}
},
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true,
+ "node_modules/indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "engines": {
+ "node": ">=12"
+ },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "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==",
+ "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=="
+ },
+ "node_modules/ink": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.1.tgz",
+ "integrity": "sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==",
"dev": true,
+ "dependencies": {
+ "@alcalzone/ansi-tokenize": "^0.1.3",
+ "ansi-escapes": "^6.0.0",
+ "auto-bind": "^5.0.1",
+ "chalk": "^5.2.0",
+ "cli-boxes": "^3.0.0",
+ "cli-cursor": "^4.0.0",
+ "cli-truncate": "^3.1.0",
+ "code-excerpt": "^4.0.0",
+ "indent-string": "^5.0.0",
+ "is-ci": "^3.0.1",
+ "is-lower-case": "^2.0.2",
+ "is-upper-case": "^2.0.2",
+ "lodash": "^4.17.21",
+ "patch-console": "^2.0.0",
+ "react-reconciler": "^0.29.0",
+ "scheduler": "^0.23.0",
+ "signal-exit": "^3.0.7",
+ "slice-ansi": "^6.0.0",
+ "stack-utils": "^2.0.6",
+ "string-width": "^5.1.2",
+ "type-fest": "^0.12.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.1.0",
+ "ws": "^8.12.0",
+ "yoga-wasm-web": "~0.3.3"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=14.16"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "react": ">=18.0.0",
+ "react-devtools-core": "^4.19.1"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react-devtools-core": {
+ "optional": true
+ }
}
},
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "node_modules/ink/node_modules/cli-truncate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object.values": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
- "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "node_modules/ink/node_modules/cli-truncate/node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "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==",
- "dependencies": {
- "wrappy": "1"
- }
+ "node_modules/ink/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
},
- "node_modules/onetime": {
+ "node_modules/ink/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/ink/node_modules/slice-ansi": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz",
+ "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==",
"dev": true,
"dependencies": {
- "mimic-fn": "^4.0.0"
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14.16"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "node_modules/ink/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
@@ -6770,360 +6403,437 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/open-editor": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-4.0.0.tgz",
- "integrity": "sha512-5mKZ98iFdkivozt5XTCOspoKbL3wtYu6oOoVxfWQ0qUX9NYsK8pdkHE7VUHXr+CwyC3nf6mV0S5FPsMS65innw==",
+ "node_modules/ink/node_modules/type-fest": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz",
+ "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==",
"dev": true,
- "dependencies": {
- "env-editor": "^1.0.0",
- "execa": "^5.1.1",
- "line-column-path": "^3.0.0",
- "open": "^8.4.0"
- },
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/open-editor/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "node_modules/internal-slot": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
+ "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.2",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+ "dev": true
+ },
+ "node_modules/irregular-plurals": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
"dev": true,
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/open-editor/node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "node_modules/is-actual-promise": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.1.tgz",
+ "integrity": "sha512-PlsL4tNv62lx5yN2HSqaRSTgIpUAPW7U6+crVB8HfWm5161rZpeqWbl0ZSqH2MAfRKXWSZVPRNbE/r8qPcb13g==",
"dev": true,
- "engines": {
- "node": ">=10.17.0"
+ "dependencies": {
+ "tshy": "^1.7.0"
}
},
- "node_modules/open-editor/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==",
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/open-editor/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/open-editor/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "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": {
- "path-key": "^3.0.0"
+ "binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/open-editor/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
"dev": true,
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/open-editor/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "node_modules/is-builtin-module": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
+ "dependencies": {
+ "builtin-modules": "^3.3.0"
+ },
"engines": {
"node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/open/node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/opener": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
- "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
"dev": true,
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
"bin": {
- "opener": "bin/opener-bin.js"
+ "is-ci": "bin.js"
}
},
- "node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "node_modules/is-ci/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"dev": true,
- "dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=8"
}
},
- "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==",
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "own-or": "^1.0.0"
- }
- },
- "node_modules/p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
- "engines": {
- "node": ">=4"
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
"dev": true,
"dependencies": {
- "yocto-queue": "^0.1.0"
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
+ "bin": {
+ "is-docker": "cli.js"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
- "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"engines": {
- "node": ">=16"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "engines": {
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/is-get-set-prop": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz",
+ "integrity": "sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "get-set-props": "^0.1.0",
+ "lowercase-keys": "^1.0.0"
}
},
- "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,
+ "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==",
"dependencies": {
- "graceful-fs": "^4.1.15",
- "hasha": "^5.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
+ "is-extglob": "^2.1.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/parent-module": {
+ "node_modules/is-js-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz",
+ "integrity": "sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw==",
+ "dev": true,
+ "dependencies": {
+ "js-types": "^1.0.0"
+ }
+ },
+ "node_modules/is-lambda": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "dev": true
+ },
+ "node_modules/is-lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz",
+ "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==",
"dev": true,
"dependencies": {
- "callsites": "^3.0.0"
- },
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/parent-module/node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
+ "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==",
"engines": {
- "node": ">=6"
+ "node": ">=0.12.0"
}
},
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/parse-ms": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz",
- "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/is-obj-prop": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz",
+ "integrity": "sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w==",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^1.0.0",
+ "obj-props": "^1.0.0"
}
},
- "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==",
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"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==",
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "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,
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "node_modules/is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="
},
- "node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "node_modules/is-proto-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz",
+ "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==",
"dev": true,
"dependencies": {
- "isarray": "0.0.1"
+ "lowercase-keys": "^1.0.0",
+ "proto-props": "^2.0.0"
}
},
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/picocolors": {
+ "node_modules/is-relative": {
"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==",
- "engines": {
- "node": ">=8.6"
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "dev": true,
+ "dependencies": {
+ "is-unc-path": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/pkg-conf": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-4.0.0.tgz",
- "integrity": "sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==",
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
"dependencies": {
- "find-up": "^6.0.0",
- "load-json-file": "^7.0.0"
+ "call-bind": "^1.0.2"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -7131,763 +6841,995 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pkg-conf/node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
"dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/pkg-conf/node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
"dependencies": {
- "p-locate": "^6.0.0"
+ "has-symbols": "^1.0.2"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/pkg-conf/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "dev": true,
"dependencies": {
- "yocto-queue": "^1.0.0"
+ "which-typed-array": "^1.1.11"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/pkg-conf/node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "node_modules/is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "dev": true,
"dependencies": {
- "p-limit": "^4.0.0"
+ "unc-path-regex": "^0.1.2"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz",
+ "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==",
+ "engines": {
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pkg-conf/node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node_modules/is-upper-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz",
+ "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.0.3"
}
},
- "node_modules/pkg-conf/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "engines": {
- "node": ">=12.20"
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "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/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"dependencies": {
- "find-up": "^4.0.0"
+ "is-docker": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
"engines": {
"node": ">=8"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
"dependencies": {
- "p-locate": "^4.1.0"
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
"dependencies": {
- "p-try": "^2.0.0"
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pkg-dir/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==",
+ "node_modules/istanbul-reports": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
+ "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
"dev": true,
"dependencies": {
- "p-limit": "^2.2.0"
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/plur": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz",
- "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==",
+ "node_modules/jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
"dependencies": {
- "irregular-plurals": "^3.3.0"
+ "@isaacs/cliui": "^8.0.2"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
"engines": {
- "node": ">=4"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "node_modules/jest-diff/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": ">= 0.8.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/prettier": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
- "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "node_modules/jest-diff/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "bin": {
- "prettier": "bin-prettier.js"
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "node_modules/jest-diff/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": {
- "fast-diff": "^1.1.2"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/pretty-format": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
- "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "node_modules/jest-diff/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/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
"dependencies": {
- "@jest/schemas": "^29.4.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "node_modules/jest-matcher-utils/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": ">=10"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/pretty-ms": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz",
- "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==",
+ "node_modules/jest-matcher-utils/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
- "parse-ms": "^3.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "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==",
+ "node_modules/jest-matcher-utils/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": {
- "fromentries": "^1.2.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=8"
+ "node": ">=7.0.0"
}
},
- "node_modules/proto-props": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz",
- "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==",
+ "node_modules/jest-matcher-utils/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/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
"engines": {
- "node": ">=4"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "node_modules/jest-message-util/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": ">=6"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "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/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "node_modules/jest-message-util/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "node_modules/jest-message-util/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,
- "peer": true,
"dependencies": {
- "safe-buffer": "^5.1.0"
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "node_modules/jest-message-util/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/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "node_modules/jest-message-util/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
"dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
},
"engines": {
- "node": ">=8"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "node_modules/jest-util/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": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/read-pkg-up/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==",
+ "node_modules/jest-util/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/read-pkg-up/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==",
+ "node_modules/jest-util/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
"dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
"engines": {
"node": ">=8"
}
},
- "node_modules/read-pkg-up/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==",
+ "node_modules/jest-util/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": {
- "p-try": "^2.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=6"
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/jest-util/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/jest-util/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/sindresorhus"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/read-pkg-up/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==",
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "p-limit": "^2.2.0"
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 10.13.0"
}
},
- "node_modules/read-pkg-up/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==",
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "node_modules/js-string-escape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+ "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
+ "engines": {
+ "node": ">= 0.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/read-pkg/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "node_modules/js-types": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz",
+ "integrity": "sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw==",
"dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/read-pkg/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "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==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
"bin": {
- "semver": "bin/semver"
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
+ "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "dev": true,
"engines": {
- "node": ">= 6"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "devOptional": true,
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
"dependencies": {
- "picomatch": "^2.2.1"
+ "minimist": "^1.2.0"
},
- "engines": {
- "node": ">=8.10.0"
+ "bin": {
+ "json5": "lib/cli.js"
}
},
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "node_modules/jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.2.0"
+ ]
+ },
+ "node_modules/just-extend": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
+ "dev": true
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
+ "json-buffer": "3.0.1"
}
},
- "node_modules/redent/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==",
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/regexp-tree": {
- "version": "0.1.27",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
- "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
- "dev": true,
- "bin": {
- "regexp-tree": "bin/regexp-tree"
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "node_modules/line-column-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-3.0.0.tgz",
+ "integrity": "sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
+ "type-fest": "^2.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "node_modules/line-column-path/node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "dependencies": {
- "jsesc": "~0.5.0"
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/load-json-file": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz",
+ "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "bin": {
- "regjsparser": "bin/parser"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
"dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
+ "peer": true,
+ "engines": {
+ "node": ">=6.11.5"
}
},
- "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==",
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"dependencies": {
- "es6-error": "^4.0.1"
+ "p-locate": "^5.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
- "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==",
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
"dev": true
},
- "node_modules/resolve": {
- "version": "1.22.2",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
- "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.11.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
},
- "bin": {
- "resolve": "bin/resolve"
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "node_modules/log-symbols/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": {
- "resolve-from": "^5.0.0"
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "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==",
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "node_modules/log-symbols/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,
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "node_modules/log-symbols/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/log-symbols/node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
"dependencies": {
- "glob": "^7.1.3"
+ "js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "loose-envify": "cli.js"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "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/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
- "queue-microtask": "^1.2.2"
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "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/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==",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/safe-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
- "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "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/make-fetch-happen": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz",
+ "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==",
"dev": true,
"dependencies": {
- "regexp-tree": "~0.1.1"
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "is-regex": "^1.1.4"
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "peer": true,
+ "node_modules/matcher": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz",
+ "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==",
"dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
+ "escape-string-regexp": "^5.0.0"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semver": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "node_modules/md5-hex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
+ "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==",
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "blueimp-md5": "^2.10.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/serialize-error": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
- "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
+ "node_modules/memoize": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.0.0.tgz",
+ "integrity": "sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==",
"dependencies": {
- "type-fest": "^0.13.1"
+ "mimic-function": "^5.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sindresorhus/memoize?sponsor=1"
}
},
- "node_modules/serialize-error/node_modules/type-fest": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
- "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "node_modules/memory-fs": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
+ "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==",
+ "dev": true
+ },
+ "node_modules/meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
"engines": {
"node": ">=10"
},
@@ -7895,1052 +7837,1029 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/serialize-javascript": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
- "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "node_modules/meow/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
- "peer": true,
"dependencies": {
- "randombytes": "^2.1.0"
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
- },
- "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==",
+ "node_modules/meow/node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "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==",
+ "node_modules/meow/node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/meow/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micro-spelling-correcter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz",
+ "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==",
+ "dev": true
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "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=="
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "node_modules/sinon": {
- "version": "15.2.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz",
- "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==",
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
+ "peer": true,
"dependencies": {
- "@sinonjs/commons": "^3.0.0",
- "@sinonjs/fake-timers": "^10.3.0",
- "@sinonjs/samsam": "^8.0.0",
- "diff": "^5.1.0",
- "nise": "^5.1.4",
- "supports-color": "^7.2.0"
+ "mime-db": "1.52.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/sinon"
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/slice-ansi": {
+ "node_modules/mimic-function": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
- "dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.0.tgz",
+ "integrity": "sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==",
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"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": ">=4"
}
},
- "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,
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"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"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=8"
+ "node": "*"
}
},
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
"dev": true,
"dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "node_modules/spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
- "dev": true
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
+ "node_modules/minimist-options/node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
}
},
- "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==",
+ "node_modules/minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
}
},
- "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==",
+ "node_modules/minipass-collect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
+ "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
+ "dev": true,
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
}
},
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/minipass-fetch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz",
+ "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==",
+ "dev": true,
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
},
"engines": {
- "node": ">=12"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
}
},
- "node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "minipass": "^3.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 8"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
- "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "yallist": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
- "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "node_modules/minipass-json-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz",
+ "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "jsonparse": "^1.3.1",
+ "minipass": "^3.0.0"
}
},
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "node_modules/minipass-json-stream/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "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==",
+ "node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
"engines": {
"node": ">=8"
}
},
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "yallist": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
"dev": true,
"dependencies": {
- "min-indent": "^1.0.0"
+ "minipass": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/supertap": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz",
- "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==",
+ "node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dependencies": {
- "indent-string": "^5.0.0",
- "js-yaml": "^3.14.1",
- "serialize-error": "^7.0.1",
- "strip-ansi": "^7.0.1"
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">= 8"
}
},
- "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,
+ "node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "node_modules/mkdirp": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
"dev": true,
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
+ "bin": {
+ "mkdirp": "dist/cjs/src/bin.js"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/nise": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.7.tgz",
+ "integrity": "sha512-wWtNUhkT7k58uvWTB/Gy26eA/EJKtPZFVAhEilN5UYVmmGRYOURbejRUyKm0Uu9XVEW7K5nBOZfR8VMB4QR2RQ==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0",
+ "@sinonjs/fake-timers": "^11.2.2",
+ "@sinonjs/text-encoding": "^0.7.2",
+ "just-extend": "^6.2.0",
+ "path-to-regexp": "^6.2.1"
}
},
- "node_modules/tap": {
- "version": "16.3.7",
- "resolved": "https://registry.npmjs.org/tap/-/tap-16.3.7.tgz",
- "integrity": "sha512-AaovVsfXVKcIf9eD1NxgwIqSDz5LauvybTpS6bjAKVYqz3+iavHC1abwxTkXmswb2n7eq8qKLt8DvY3D6iWcYA==",
- "bundleDependencies": [
- "ink",
- "treport",
- "@types/react",
- "@isaacs/import-jsx",
- "react"
- ],
- "dev": true,
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
- "@isaacs/import-jsx": "^4.0.1",
- "@types/react": "^17.0.52",
- "chokidar": "^3.3.0",
- "findit": "^2.0.0",
- "foreground-child": "^2.0.0",
- "fs-exists-cached": "^1.0.0",
- "glob": "^7.2.3",
- "ink": "^3.2.0",
- "isexe": "^2.0.0",
- "istanbul-lib-processinfo": "^2.0.3",
- "jackspeak": "^1.4.2",
- "libtap": "^1.4.0",
- "minipass": "^3.3.4",
- "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.2",
- "tap-yaml": "^1.0.2",
- "tcompare": "^5.0.7",
- "treport": "^3.0.4",
- "which": "^2.0.2"
- },
- "bin": {
- "tap": "bin/run.js"
+ "whatwg-url": "^5.0.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": "4.x || >=6.0.0"
},
"peerDependencies": {
- "coveralls": "^3.1.1",
- "flow-remove-types": ">=2.112.0",
- "ts-node": ">=8.5.2",
- "typescript": ">=3.7.2"
+ "encoding": "^0.1.0"
},
"peerDependenciesMeta": {
- "coveralls": {
- "optional": true
- },
- "flow-remove-types": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- },
- "typescript": {
+ "encoding": {
"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==",
+ "node_modules/node-gyp": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz",
+ "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==",
"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"
+ "env-paths": "^2.2.0",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^13.0.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^4.0.0"
},
"bin": {
- "tap-mocha-reporter": "index.js"
+ "node-gyp": "bin/node-gyp.js"
},
"engines": {
- "node": ">= 8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap-mocha-reporter/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/node-gyp-build": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
+ "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
}
},
- "node_modules/tap-mocha-reporter/node_modules/escape-string-regexp": {
+ "node_modules/node-gyp/node_modules/abbrev": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap-parser": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.2.tgz",
- "integrity": "sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==",
+ "node_modules/node-gyp/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
- "events-to-array": "^1.0.1",
- "minipass": "^3.1.6",
- "tap-yaml": "^1.0.0"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/node-gyp/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
},
"bin": {
- "tap-parser": "bin/cmd.js"
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">= 8"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap-yaml": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz",
- "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==",
+ "node_modules/node-gyp/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true,
- "dependencies": {
- "yaml": "^1.10.2"
+ "engines": {
+ "node": ">=16"
}
},
- "node_modules/tap/node_modules/@ampproject/remapping": {
- "version": "2.2.1",
+ "node_modules/node-gyp/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/@babel/code-frame": {
- "version": "7.22.5",
+ "node_modules/node-gyp/node_modules/nopt": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
+ "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/core": {
- "version": "7.22.5",
+ "node_modules/node-gyp/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
+ "isexe": "^3.1.1"
},
- "engines": {
- "node": ">=6.9.0"
+ "bin": {
+ "node-which": "bin/which.js"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/generator": {
- "version": "7.22.5",
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
+ "peer": true
+ },
+ "node_modules/nofilter": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
+ "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.19"
}
},
- "node_modules/tap/node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
+ "node_modules/normalize-package-data": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
+ "hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
+ "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,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
+ "node_modules/npm-bundled": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz",
+ "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "npm-normalize-package-bin": "^3.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
+ "node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
+ "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "semver": "^7.1.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
+ "node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-package-arg": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz",
+ "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
+ "node_modules/npm-packlist": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
+ "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "ignore-walk": "^6.0.4"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
+ "node_modules/npm-pick-manifest": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz",
+ "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "dependencies": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ },
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
+ "node_modules/npm-registry-fetch": {
+ "version": "16.1.0",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz",
+ "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "make-fetch-happen": "^13.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-json-stream": "^1.0.1",
+ "minizlib": "^2.1.2",
+ "npm-package-arg": "^11.0.0",
+ "proc-log": "^3.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.5",
+ "node_modules/npm-run-path": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "path-key": "^4.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npmlog": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
+ "dependencies": {
+ "are-we-there-yet": "^2.0.0",
+ "console-control-strings": "^1.1.0",
+ "gauge": "^3.0.0",
+ "set-blocking": "^2.0.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
+ "node_modules/obj-props": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.4.0.tgz",
+ "integrity": "sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/@babel/helpers": {
- "version": "7.22.5",
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/@babel/highlight": {
- "version": "7.22.5",
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
}
},
- "node_modules/tap/node_modules/@babel/parser": {
- "version": "7.22.5",
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "parser": "bin/babel-parser.js"
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.20.7",
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.20.5",
- "@babel/helper-compilation-targets": "^7.20.7",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.20.7"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "wrappy": "1"
}
},
- "node_modules/tap/node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "mimic-fn": "^4.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.22.5",
+ "node_modules/open-editor": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-4.1.1.tgz",
+ "integrity": "sha512-SYtGeZ9Zkzj/naoZaEF9LzwDYEGwuqQ4Fx5E3xdVRN98LFJjvMhG/ElByFEOVOiXepGra/Wi1fA4i/E1fXSBsw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "env-editor": "^1.1.0",
+ "execa": "^5.1.1",
+ "line-column-path": "^3.0.0",
+ "open": "^8.4.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.5",
+ "node_modules/open-editor/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.22.5",
+ "node_modules/open-editor/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/template": {
- "version": "7.22.5",
+ "node_modules/open-editor/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10.17.0"
}
},
- "node_modules/tap/node_modules/@babel/traverse": {
- "version": "7.22.5",
+ "node_modules/open-editor/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,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@babel/types": {
- "version": "7.22.5",
+ "node_modules/open-editor/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "to-fast-properties": "^2.0.0"
- },
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/@isaacs/import-jsx": {
+ "node_modules/open-editor/node_modules/npm-run-path": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"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"
+ "path-key": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
+ "node_modules/open-editor/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "mimic-fn": "^2.1.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
+ "node_modules/open-editor/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/open-editor/node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
+ "node_modules/open/node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
+ "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,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "bin": {
+ "opener": "bin/opener-bin.js"
}
},
- "node_modules/tap/node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@types/prop-types": {
- "version": "15.7.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@types/react": {
- "version": "17.0.62",
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/tap/node_modules/@types/scheduler": {
- "version": "0.16.3",
- "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",
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "type-fest": "^0.21.3"
+ "yocto-queue": "^0.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
- "inBundle": true,
- "license": "(MIT OR CC0-1.0)",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
"engines": {
"node": ">=10"
},
@@ -8948,769 +8867,683 @@
"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",
+ "node_modules/p-map": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz",
+ "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==",
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"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.21.9",
+ "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,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "inBundle": true,
- "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-config": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/package-config/-/package-config-5.0.0.tgz",
+ "integrity": "sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==",
"dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "bin": {
- "browserslist": "cli.js"
+ "find-up-simple": "^1.0.0",
+ "load-json-file": "^7.0.1"
},
"engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/caller-callsite": {
- "version": "4.1.0",
+ "node_modules/pacote": {
+ "version": "17.0.6",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz",
+ "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "callsites": "^3.1.0"
+ "@npmcli/git": "^5.0.0",
+ "@npmcli/installed-package-contents": "^2.0.1",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "@npmcli/run-script": "^7.0.0",
+ "cacache": "^18.0.0",
+ "fs-minipass": "^3.0.0",
+ "minipass": "^7.0.2",
+ "npm-package-arg": "^11.0.0",
+ "npm-packlist": "^8.0.0",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^16.0.0",
+ "proc-log": "^3.0.0",
+ "promise-retry": "^2.0.1",
+ "read-package-json": "^7.0.0",
+ "read-package-json-fast": "^3.0.0",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11"
+ },
+ "bin": {
+ "pacote": "lib/bin.js"
},
"engines": {
- "node": ">=8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/caller-path": {
- "version": "3.0.1",
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "caller-callsite": "^4.1.0"
+ "callsites": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/callsites": {
+ "node_modules/parent-module/node_modules/callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/tap/node_modules/caniuse-lite": {
- "version": "1.0.30001506",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "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",
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/ci-info": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/parse-json/node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
},
- "node_modules/tap/node_modules/cli-boxes": {
- "version": "2.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/parse-ms": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
+ "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
"engines": {
- "node": ">=6"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/cli-cursor": {
- "version": "3.1.0",
+ "node_modules/patch-console": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz",
+ "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "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,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
"engines": {
"node": ">=8"
}
},
- "node_modules/tap/node_modules/cli-truncate": {
- "version": "2.1.0",
+ "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==",
+ "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,
- "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",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-scurry": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "convert-to-spaces": "^1.0.1"
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/color-convert": {
- "version": "1.9.3",
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
+ "engines": {
+ "node": "14 || >=16.14"
}
},
- "node_modules/tap/node_modules/color-name": {
- "version": "1.1.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/path-to-regexp": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+ "dev": true
},
- "node_modules/tap/node_modules/commondir": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/path-type": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
+ "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/tap/node_modules/concat-map": {
- "version": "0.0.1",
+ "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,
- "inBundle": true,
- "license": "MIT"
+ "peer": true
},
- "node_modules/tap/node_modules/convert-source-map": {
- "version": "1.9.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
- "node_modules/tap/node_modules/convert-to-spaces": {
- "version": "1.0.2",
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">= 4"
+ "node": ">= 6"
}
},
- "node_modules/tap/node_modules/csstype": {
- "version": "3.1.2",
+ "node_modules/pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
"dev": true,
- "inBundle": true,
- "license": "MIT"
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "node_modules/tap/node_modules/debug": {
- "version": "4.3.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/plur": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz",
+ "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==",
"dependencies": {
- "ms": "2.1.2"
+ "irregular-plurals": "^3.3.0"
},
"engines": {
- "node": ">=6.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/electron-to-chromium": {
- "version": "1.4.438",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/emoji-regex": {
+ "node_modules/pluralize": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
"dev": true,
- "inBundle": true,
- "license": "MIT"
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/tap/node_modules/escalade": {
- "version": "3.1.1",
+ "node_modules/polite-json": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/polite-json/-/polite-json-4.0.1.tgz",
+ "integrity": "sha512-8LI5ZeCPBEb4uBbcYKNVwk4jgqNx1yHReWoW4H4uUihWlSqZsUDfSITrRhjliuPgxsNPFhNSudGO2Zu4cbWinQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/escape-string-regexp": {
- "version": "1.0.5",
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=0.8.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/tap/node_modules/esprima": {
- "version": "4.0.1",
+ "node_modules/prettier": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz",
+ "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
"bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": ">=4"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/tap/node_modules/events-to-array": {
- "version": "1.1.2",
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
- "inBundle": true,
- "license": "ISC"
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
},
- "node_modules/tap/node_modules/find-cache-dir": {
- "version": "3.3.2",
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/tap/node_modules/find-up": {
- "version": "4.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/pretty-ms": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz",
+ "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "parse-ms": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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",
+ "node_modules/prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/glob": {
- "version": "7.2.3",
+ "node_modules/prismjs-terminal": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/prismjs-terminal/-/prismjs-terminal-1.2.3.tgz",
+ "integrity": "sha512-xc0zuJ5FMqvW+DpiRkvxURlz98DdfDsZcFHdO699+oL+ykbFfgI7O4VDEgUyc07BSL2NHl3zdb8m/tZ/aaqUrw==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"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"
+ "chalk": "^5.2.0",
+ "prismjs": "^1.29.0",
+ "string-length": "^6.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=16"
},
"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": {
+ "node_modules/proc-log": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
+ "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/indent-string": {
- "version": "4.0.0",
+ "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,
- "inBundle": true,
- "license": "MIT",
+ "dependencies": {
+ "fromentries": "^1.2.0"
+ },
"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/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
},
- "node_modules/tap/node_modules/ink": {
- "version": "3.2.0",
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
"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"
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
},
"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",
+ "node_modules/proto-props": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz",
+ "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==",
"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": ">=4"
}
},
- "node_modules/tap/node_modules/ink/node_modules/chalk": {
- "version": "4.1.2",
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"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": ">=6"
}
},
- "node_modules/tap/node_modules/ink/node_modules/color-convert": {
- "version": "2.0.1",
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "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/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
"engines": {
- "node": ">=7.0.0"
+ "node": ">=8"
}
},
- "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",
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
}
},
- "node_modules/tap/node_modules/ink/node_modules/supports-color": {
- "version": "7.2.0",
+ "node_modules/react": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "loose-envify": "^1.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/is-ci": {
- "version": "2.0.0",
+ "node_modules/react-dom": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+ "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "peer": true,
"dependencies": {
- "ci-info": "^2.0.0"
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.0"
},
- "bin": {
- "is-ci": "bin.js"
+ "peerDependencies": {
+ "react": "^18.2.0"
}
},
- "node_modules/tap/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
+ "node_modules/react-element-to-jsx-string": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz",
+ "integrity": "sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "@base2/pretty-print-object": "1.0.1",
+ "is-plain-object": "5.0.0",
+ "react-is": "18.1.0"
+ },
+ "peerDependencies": {
+ "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0",
+ "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0"
}
},
- "node_modules/tap/node_modules/js-tokens": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/react-is": {
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz",
+ "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==",
+ "dev": true
},
- "node_modules/tap/node_modules/jsesc": {
- "version": "2.5.2",
+ "node_modules/react-reconciler": {
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz",
+ "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.0"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/json5": {
- "version": "2.2.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
+ "node": ">=0.10.0"
},
- "engines": {
- "node": ">=6"
+ "peerDependencies": {
+ "react": "^18.2.0"
}
},
- "node_modules/tap/node_modules/locate-path": {
- "version": "5.0.0",
+ "node_modules/read-package-json": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz",
+ "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "p-locate": "^4.1.0"
+ "glob": "^10.2.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "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",
+ "node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
+ "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
},
- "bin": {
- "loose-envify": "cli.js"
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/tap/node_modules/lru-cache": {
- "version": "5.1.1",
+ "node_modules/read-package-json/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "yallist": "^3.0.2"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/tap/node_modules/make-dir": {
- "version": "3.1.0",
+ "node_modules/read-package-json/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "semver": "^6.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
},
"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"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/minimatch": {
- "version": "3.1.2",
+ "node_modules/read-package-json/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "*"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/minipass": {
- "version": "3.3.6",
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "yallist": "^4.0.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/tap/node_modules/minipass/node_modules/yallist": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "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.12",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/object-assign": {
- "version": "4.1.1",
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/once": {
- "version": "1.4.0",
+ "node_modules/read-pkg-up/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,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "wrappy": "1"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/onetime": {
- "version": "5.1.2",
+ "node_modules/read-pkg-up/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,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "p-locate": "^4.1.0"
},
"engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/p-limit": {
+ "node_modules/read-pkg-up/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,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -9721,11 +9554,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/p-locate": {
+ "node_modules/read-pkg-up/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,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -9733,421 +9566,509 @@
"node": ">=8"
}
},
- "node_modules/tap/node_modules/p-try": {
- "version": "2.2.0",
+ "node_modules/read-pkg-up/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,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/patch-console": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
},
- "node_modules/tap/node_modules/path-exists": {
- "version": "4.0.0",
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "node_modules/tap/node_modules/path-is-absolute": {
- "version": "1.0.1",
+ "node_modules/read-pkg/node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/picocolors": {
- "version": "1.0.0",
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
- "inBundle": true,
- "license": "ISC"
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "node_modules/tap/node_modules/pkg-dir": {
- "version": "4.2.0",
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
"engines": {
"node": ">=8"
}
},
- "node_modules/tap/node_modules/punycode": {
- "version": "2.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">= 6"
}
},
- "node_modules/tap/node_modules/react": {
- "version": "17.0.2",
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "picomatch": "^2.2.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.10.0"
}
},
- "node_modules/tap/node_modules/react-devtools-core": {
- "version": "4.27.8",
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "shell-quote": "^1.6.1",
- "ws": "^7"
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/tap/node_modules/react-reconciler": {
- "version": "0.26.2",
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
},
"engines": {
- "node": ">=0.10.0"
- },
- "peerDependencies": {
- "react": "^17.0.2"
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/redeyed": {
- "version": "2.1.1",
+ "node_modules/redent/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,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "esprima": "~4.0.0"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tap/node_modules/resolve-from": {
- "version": "3.0.0",
+ "node_modules/regexp-tree": {
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
+ "bin": {
+ "regexp-tree": "bin/regexp-tree"
}
},
- "node_modules/tap/node_modules/restore-cursor": {
- "version": "3.1.0",
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/rimraf": {
- "version": "3.0.2",
+ "node_modules/regjsparser": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
+ "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "glob": "^7.1.3"
+ "jsesc": "~0.5.0"
},
"bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "regjsparser": "bin/parser"
}
},
- "node_modules/tap/node_modules/scheduler": {
- "version": "0.20.2",
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "bin": {
+ "jsesc": "bin/jsesc"
}
},
- "node_modules/tap/node_modules/semver": {
- "version": "6.3.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
+ "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==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/shell-quote": {
- "version": "1.8.1",
+ "node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/signal-exit": {
- "version": "3.0.7",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/slice-ansi": {
+ "node_modules/resolve-cwd": {
"version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
+ "resolve-from": "^5.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/tap/node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
+ "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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-import": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-1.4.5.tgz",
+ "integrity": "sha512-HXb4YqODuuXT7Icq1Z++0g2JmhgbUHSs3VT2xR83gqvAPUikYT2Xk+562KHQgiaNkbBOlPddYrDLsC44qQggzw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "glob": "^10.3.3",
+ "walk-up-path": "^3.0.1"
},
"engines": {
- "node": ">=8"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/slice-ansi/node_modules/color-convert": {
+ "node_modules/resolve-import/node_modules/brace-expansion": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/resolve-import/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/resolve-import/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/slice-ansi/node_modules/color-name": {
- "version": "1.1.4",
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
- "inBundle": true,
- "license": "MIT"
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
},
- "node_modules/tap/node_modules/stack-utils": {
- "version": "2.0.6",
+ "node_modules/restore-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "escape-string-regexp": "^2.0.0"
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
+ "node_modules/restore-cursor/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/tap/node_modules/string-width": {
- "version": "4.2.3",
+ "node_modules/restore-cursor/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "mimic-fn": "^2.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/strip-ansi": {
- "version": "6.0.1",
+ "node_modules/restore-cursor/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/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
"engines": {
- "node": ">=8"
+ "node": ">= 4"
}
},
- "node_modules/tap/node_modules/supports-color": {
- "version": "5.5.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"engines": {
- "node": ">=4"
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
}
},
- "node_modules/tap/node_modules/tap-parser": {
- "version": "11.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dependencies": {
- "events-to-array": "^1.0.1",
- "minipass": "^3.1.6",
- "tap-yaml": "^1.0.0"
+ "glob": "^7.1.3"
},
"bin": {
- "tap-parser": "bin/cmd.js"
+ "rimraf": "bin.js"
},
- "engines": {
- "node": ">= 8"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/tap-yaml": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "yaml": "^1.10.2"
- }
- },
- "node_modules/tap/node_modules/to-fast-properties": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
+ "queue-microtask": "^1.2.2"
}
},
- "node_modules/tap/node_modules/treport": {
- "version": "3.0.4",
+ "node_modules/safe-array-concat": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+ "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
"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",
- "tap-yaml": "^1.0.0",
- "unicode-length": "^2.0.2"
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
},
- "peerDependencies": {
- "react": "^17.0.2"
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/treport/node_modules/ansi-styles": {
- "version": "4.3.0",
+ "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/safe-regex-test": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz",
+ "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
+ "is-regex": "^1.1.4"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tap/node_modules/treport/node_modules/chalk": {
- "version": "3.0.0",
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "optional": true
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
+ "loose-envify": "^1.1.0"
}
},
- "node_modules/tap/node_modules/treport/node_modules/color-convert": {
- "version": "2.0.1",
+ "node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "peer": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "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",
+ "node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/tap/node_modules/treport/node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/serialize-error": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "type-fest": "^0.13.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/type-fest": {
- "version": "0.12.0",
- "dev": true,
- "inBundle": true,
- "license": "(MIT OR CC0-1.0)",
+ "node_modules/serialize-error/node_modules/type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
"engines": {
"node": ">=10"
},
@@ -10155,1647 +10076,1577 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/unicode-length": {
- "version": "2.1.0",
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "peer": true,
"dependencies": {
- "punycode": "^2.0.0"
+ "randombytes": "^2.1.0"
}
},
- "node_modules/tap/node_modules/update-browserslist-db": {
- "version": "1.0.11",
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
+ "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "define-data-property": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.2",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.1"
},
- "bin": {
- "update-browserslist-db": "cli.js"
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
},
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/tap/node_modules/widest-line": {
- "version": "3.1.0",
+ "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,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "string-width": "^4.0.0"
+ "shebang-regex": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/tap/node_modules/wrap-ansi": {
- "version": "6.2.0",
+ "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,
- "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",
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"engines": {
- "node": ">=8"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/tap/node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
+ "node_modules/sigstore": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz",
+ "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "@sigstore/bundle": "^2.1.1",
+ "@sigstore/core": "^0.2.0",
+ "@sigstore/protobuf-specs": "^0.2.1",
+ "@sigstore/sign": "^2.2.1",
+ "@sigstore/tuf": "^2.3.0",
+ "@sigstore/verify": "^0.1.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^16.14.0 || >=18.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.9",
+ "node_modules/sinon": {
+ "version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz",
+ "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0",
+ "@sinonjs/fake-timers": "^11.2.2",
+ "@sinonjs/samsam": "^8.0.0",
+ "diff": "^5.1.0",
+ "nise": "^5.1.5",
+ "supports-color": "^7.2.0"
},
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sinon"
}
},
- "node_modules/tap/node_modules/yallist": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/yaml": {
- "version": "1.10.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"engines": {
- "node": ">= 6"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tap/node_modules/yoga-layout-prebuilt": {
- "version": "1.10.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dependencies": {
- "@types/yoga-layout": "1.9.2"
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "node_modules/tapable": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
- "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==",
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
"engines": {
- "node": ">=0.6"
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/tar": {
- "version": "6.1.15",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
- "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==",
+ "node_modules/socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "dev": true,
"dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "engines": {
- "node": ">=8"
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
}
},
- "node_modules/tcompare": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz",
- "integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==",
+ "node_modules/socks-proxy-agent": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
+ "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
"dev": true,
"dependencies": {
- "diff": "^4.0.2"
+ "agent-base": "^7.0.2",
+ "debug": "^4.3.4",
+ "socks": "^2.7.1"
},
"engines": {
- "node": ">=10"
+ "node": ">= 14"
}
},
- "node_modules/tcompare/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "node_modules/socks-proxy-agent/node_modules/agent-base": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
"engines": {
- "node": ">=0.3.1"
+ "node": ">= 14"
}
},
- "node_modules/temp-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
- "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
+ "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,
+ "peer": true,
"engines": {
- "node": ">=14.16"
+ "node": ">=0.10.0"
}
},
- "node_modules/tempy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
- "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
+ "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,
+ "peer": true,
"dependencies": {
- "is-stream": "^3.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^2.12.2",
- "unique-string": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "node_modules/tempy/node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/tempy/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "node_modules/spdx-exceptions": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
+ "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
+ "dev": true
},
- "node_modules/terser": {
- "version": "5.18.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz",
- "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==",
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
- "peer": true,
"dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.9",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
- "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+ "dev": true
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/ssri": {
+ "version": "10.0.5",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
+ "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
"dev": true,
- "peer": true,
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.17",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.16.8"
+ "minipass": "^7.0.3"
},
"engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "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,
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
+ "escape-string-regexp": "^2.0.0"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/time-zone": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz",
- "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==",
+ "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==",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/to-absolute-glob": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-3.0.0.tgz",
- "integrity": "sha512-loO/XEWTRqpfcpI7+Jr2RR2Umaaozx1t6OSVWtMi0oy5F/Fxg3IC+D/TToDnxyAGs7uZBGT/6XmyDUxgsObJXA==",
+ "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/string-length": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-6.0.0.tgz",
+ "integrity": "sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==",
"dev": true,
"dependencies": {
- "is-absolute": "^1.0.0",
- "is-negated-glob": "^1.0.0"
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
+ "node_modules/string-width": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+ "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/string-width-cjs": {
+ "name": "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": {
- "is-number": "^7.0.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=8.0"
+ "node": ">=8"
}
},
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "node_modules/string-width-cjs/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/trivial-deferred": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.1.2.tgz",
- "integrity": "sha512-vDPiDBC3hyP6O4JrJYMImW3nl3c03Tsj9fEXc7Qc/XKa1O7gf5ZtFfIR/E0dun9SnDHdwjna1Z2rSzYgqpxh/g==",
+ "node_modules/string-width-cjs/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/string-width-cjs/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": ">=8"
}
},
- "node_modules/tsconfig-paths": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
- "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "node_modules/string-width-cjs/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": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tsconfig-paths/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
"dev": true,
"dependencies": {
- "minimist": "^1.2.0"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
- "bin": {
- "json5": "lib/cli.js"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsconfig-paths/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsd": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.28.1.tgz",
- "integrity": "sha512-FeYrfJ05QgEMW/qOukNCr4fAJHww4SaKnivAXRv4g5kj4FeLpNV7zH4dorzB9zAfVX4wmA7zWu/wQf7kkcvfbw==",
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
"dev": true,
"dependencies": {
- "@tsd/typescript": "~5.0.2",
- "eslint-formatter-pretty": "^4.1.0",
- "globby": "^11.0.1",
- "jest-diff": "^29.0.3",
- "meow": "^9.0.0",
- "path-exists": "^4.0.0",
- "read-pkg-up": "^7.0.0"
- },
- "bin": {
- "tsd": "dist/cli.js"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
- "engines": {
- "node": ">=14.16"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsd/node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
+ "node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "ansi-regex": "^6.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "node_modules/strip-ansi-cjs": {
+ "name": "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": {
- "prelude-ls": "^1.2.1"
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=8"
}
},
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "node_modules/strip-ansi-cjs/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/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"engines": {
"node": ">=4"
}
},
- "node_modules/type-fest": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.12.0.tgz",
- "integrity": "sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==",
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
"engines": {
- "node": ">=14.16"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supertap": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz",
+ "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==",
+ "dependencies": {
+ "indent-string": "^5.0.0",
+ "js-yaml": "^3.14.1",
+ "serialize-error": "^7.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "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==",
+ "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": {
- "is-typedarray": "^1.0.0"
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/typescript": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+ "node_modules/supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
"dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
},
"engines": {
- "node": ">=14.17"
+ "node": ">=8"
}
},
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
+ "node_modules/sync-content": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-1.0.2.tgz",
+ "integrity": "sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==",
"dev": true,
+ "dependencies": {
+ "glob": "^10.2.6",
+ "mkdirp": "^3.0.1",
+ "path-scurry": "^1.9.2",
+ "rimraf": "^5.0.1"
+ },
+ "bin": {
+ "sync-content": "dist/mjs/bin.mjs"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/unicode-length": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.1.0.tgz",
- "integrity": "sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==",
+ "node_modules/sync-content/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
- "punycode": "^2.0.0"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
+ "node_modules/sync-content/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"dev": true,
"dependencies": {
- "crypto-random-string": "^4.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=12"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "node_modules/sync-content/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "brace-expansion": "^2.0.1"
},
- "bin": {
- "update-browserslist-db": "cli.js"
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "node_modules/sync-content/node_modules/rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
"dev": true,
"dependencies": {
- "punycode": "^2.1.0"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/url-or-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/url-or-path/-/url-or-path-2.1.0.tgz",
- "integrity": "sha512-dsBD6GbytSMj9YDb3jVzSRENwFh50oUORnWBeSHfo0Lnwv2KMm/J4npyGy1P9rivUPsUGLjTA53XqAFqpe0nww==",
+ "node_modules/synckit": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
+ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
"dev": true,
+ "dependencies": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
"funding": {
- "url": "https://github.com/fisker/url-or-path?sponsor=1"
+ "url": "https://opencollective.com/unts"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "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,
+ "node_modules/tap": {
+ "version": "18.7.0",
+ "resolved": "https://registry.npmjs.org/tap/-/tap-18.7.0.tgz",
+ "integrity": "sha512-bL/0krlx8k3fY9mjI9CMfVoAGclZegl+vm5pEJpF/USxam5eNhp5wLk5UH0ST3gWEJkW0PDdFHTOStE+mYurrQ==",
+ "dev": true,
+ "dependencies": {
+ "@tapjs/after": "1.1.18",
+ "@tapjs/after-each": "1.1.18",
+ "@tapjs/asserts": "1.1.18",
+ "@tapjs/before": "1.1.18",
+ "@tapjs/before-each": "1.1.18",
+ "@tapjs/core": "1.5.0",
+ "@tapjs/filter": "1.2.18",
+ "@tapjs/fixture": "1.2.18",
+ "@tapjs/intercept": "1.2.18",
+ "@tapjs/mock": "1.3.0",
+ "@tapjs/node-serialize": "1.3.0",
+ "@tapjs/run": "1.5.0",
+ "@tapjs/snapshot": "1.2.18",
+ "@tapjs/spawn": "1.1.18",
+ "@tapjs/stdin": "1.1.18",
+ "@tapjs/test": "1.4.0",
+ "@tapjs/typescript": "1.4.0",
+ "@tapjs/worker": "1.1.18",
+ "resolve-import": "^1.4.5"
+ },
"bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
- "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
+ "tap": "dist/esm/run.mjs"
},
"engines": {
- "node": ">=10.12.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "node_modules/tap-parser": {
+ "version": "15.3.1",
+ "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.1.tgz",
+ "integrity": "sha512-hwAtXX5TBGt2MJeYvASc7DjP48PUzA7P8RTbLxQcgKCEH7ICD5IsRco7l5YvkzjHlZbUbeI9wzO8B4hw2sKgnQ==",
"dev": true,
"dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "events-to-array": "^2.0.3",
+ "tap-yaml": "2.2.1"
+ },
+ "bin": {
+ "tap-parser": "bin/cmd.cjs"
+ },
+ "engines": {
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
}
},
- "node_modules/watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "node_modules/tap-yaml": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.1.tgz",
+ "integrity": "sha512-ovZuUMLAIH59jnFHXKEGJ+WyDYl6Cuduwg9qpvnqkZOUA1nU84q02Sry1HT0KXcdv2uB91bEKKxnIybBgrb6oA==",
"dev": true,
- "peer": true,
"dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
+ "yaml": "^2.3.0",
+ "yaml-types": "^0.3.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
}
},
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/webpack": {
- "version": "5.88.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz",
- "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==",
+ "node_modules/tapable": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
+ "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^1.0.0",
- "@webassemblyjs/ast": "^1.11.5",
- "@webassemblyjs/wasm-edit": "^1.11.5",
- "@webassemblyjs/wasm-parser": "^1.11.5",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.9.0",
- "browserslist": "^4.14.5",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.15.0",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.7",
- "watchpack": "^2.4.0",
- "webpack-sources": "^3.2.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
"engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
+ "node": ">=0.6"
}
},
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "dev": true,
- "peer": true,
+ "node_modules/tar": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+ "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
"engines": {
- "node": ">=10.13.0"
+ "node": ">=10"
}
},
- "node_modules/webpack/node_modules/enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
- "dev": true,
- "peer": true,
+ "node_modules/tar/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
+ "minipass": "^3.0.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">= 8"
}
},
- "node_modules/webpack/node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "peer": true,
+ "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
+ "yallist": "^4.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=8"
}
},
- "node_modules/webpack/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "peer": true,
+ "node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
"engines": {
- "node": ">=4.0"
+ "node": ">=8"
}
},
- "node_modules/webpack/node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true,
- "peer": true,
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=10"
}
},
- "node_modules/well-known-symbols": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz",
- "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
+ "node_modules/tcompare": {
+ "version": "6.4.5",
+ "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.4.5.tgz",
+ "integrity": "sha512-Whuz9xlKKI2XXICKDSDRKjXdBuC6gBNOgmEUtH7UFyQeYzfUMQ19DyjZULarGKDGFhgOg3CJ+IQUEfpkOPg0Uw==",
+ "dev": true,
+ "dependencies": {
+ "diff": "^5.1.0",
+ "react-element-to-jsx-string": "^15.0.0"
+ },
"engines": {
- "node": ">=6"
+ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
}
},
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "node_modules/temp-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
+ "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
+ "engines": {
+ "node": ">=14.16"
}
},
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/tempy": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
+ "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
"dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
+ "is-stream": "^3.0.0",
+ "temp-dir": "^3.0.0",
+ "type-fest": "^2.12.2",
+ "unique-string": "^3.0.0"
},
"engines": {
- "node": ">= 8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "node_modules/tempy/node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "engines": {
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/which-module": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
- "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
- "dev": true
+ "node_modules/terser": {
+ "version": "5.27.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
+ "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "node_modules/which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+ "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
"dev": true,
+ "peer": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "@jridgewell/trace-mapping": "^0.3.20",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.26.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
}
},
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/wide-align/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==",
+ "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/wide-align/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=="
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
},
- "node_modules/wide-align/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==",
+ "node_modules/time-zone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz",
+ "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==",
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/wide-align/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==",
+ "node_modules/to-absolute-glob": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-3.0.0.tgz",
+ "integrity": "sha512-loO/XEWTRqpfcpI7+Jr2RR2Umaaozx1t6OSVWtMi0oy5F/Fxg3IC+D/TToDnxyAGs7uZBGT/6XmyDUxgsObJXA==",
+ "dev": true,
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/wide-align/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==",
+ "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==",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "is-number": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.0"
}
},
- "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==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "dev": true,
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": ">=8"
}
},
- "node_modules/wrap-ansi/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==",
+ "node_modules/trivial-deferred": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-2.0.0.tgz",
+ "integrity": "sha512-iGbM7X2slv9ORDVj2y2FFUq3cP/ypbtu2nQ8S38ufjL0glBABvmR9pTdsib1XtS2LUhhLMbelaBUaf/s5J3dSw==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">= 8"
}
},
- "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==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/ts-api-utils": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
+ "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=16.13.0"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
}
},
- "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==",
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsd": {
+ "version": "0.30.4",
+ "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.30.4.tgz",
+ "integrity": "sha512-ncC4SwAeUk0OTcXt5h8l0/gOLHJSp9ogosvOADT6QYzrl0ITm398B3wkz8YESqefIsEEwvYAU8bvo7/rcN/M0Q==",
+ "dev": true,
+ "dependencies": {
+ "@tsd/typescript": "~5.3.3",
+ "eslint-formatter-pretty": "^4.1.0",
+ "globby": "^11.0.1",
+ "jest-diff": "^29.0.3",
+ "meow": "^9.0.0",
+ "path-exists": "^4.0.0",
+ "read-pkg-up": "^7.0.0"
+ },
+ "bin": {
+ "tsd": "dist/cli.js"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=14.16"
}
},
- "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=="
- },
- "node_modules/wrap-ansi/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=="
+ "node_modules/tsd/node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "node_modules/tsd/node_modules/slash": {
"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==",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/wrap-ansi/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==",
+ "node_modules/tshy": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.11.0.tgz",
+ "integrity": "sha512-5T5PVyuYQKTcOKz5a2lpwx4WKi8yEzQGO0Q5l+9clJMYupMaTI7ONEwKggGAZDQQGIgCOyUCfBWnSkG0XdJc+A==",
+ "dev": true,
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "chalk": "^5.3.0",
+ "chokidar": "^3.5.3",
+ "foreground-child": "^3.1.1",
+ "mkdirp": "^3.0.1",
+ "resolve-import": "^1.4.4",
+ "rimraf": "^5.0.1",
+ "sync-content": "^1.0.2",
+ "typescript": "5.2 || 5.3",
+ "walk-up-path": "^3.0.1"
+ },
+ "bin": {
+ "tshy": "dist/esm/index.js"
},
"engines": {
- "node": ">=8"
+ "node": "16 >=16.17 || 18 >=18.15.0 || >=20.6.1"
}
},
- "node_modules/wrap-ansi/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==",
+ "node_modules/tshy/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
"dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "node_modules/tshy/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
"dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
- "engines": {
- "node": ">=14"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/xo": {
- "version": "0.54.2",
- "resolved": "https://registry.npmjs.org/xo/-/xo-0.54.2.tgz",
- "integrity": "sha512-1S3r+ecCg8OVPtu711as+cgwxOg+WQNRgSzqZ+OHzYlsa8CpW3ych0Ve9k8Q2QG6gqO3HSpaS5AXi9D0yPUffg==",
- "bundleDependencies": [
- "@typescript-eslint/eslint-plugin",
- "@typescript-eslint/parser",
- "eslint-config-xo-typescript"
- ],
+ "node_modules/tshy/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.3.3",
- "@typescript-eslint/eslint-plugin": "^5.59.1",
- "@typescript-eslint/parser": "^5.59.1",
- "arrify": "^3.0.0",
- "cosmiconfig": "^8.1.3",
- "define-lazy-prop": "^3.0.0",
- "eslint": "^8.37.0",
- "eslint-config-prettier": "^8.8.0",
- "eslint-config-xo": "^0.43.1",
- "eslint-config-xo-typescript": "^0.57.0",
- "eslint-formatter-pretty": "^5.0.0",
- "eslint-import-resolver-webpack": "^0.13.2",
- "eslint-plugin-ava": "^14.0.0",
- "eslint-plugin-eslint-comments": "^3.2.0",
- "eslint-plugin-import": "^2.27.5",
- "eslint-plugin-n": "^15.7.0",
- "eslint-plugin-no-use-extend-native": "^0.5.0",
- "eslint-plugin-prettier": "^4.2.1",
- "eslint-plugin-unicorn": "^46.0.0",
- "esm-utils": "^4.1.2",
- "find-cache-dir": "^4.0.0",
- "find-up": "^6.3.0",
- "get-stdin": "^9.0.0",
- "get-tsconfig": "^4.5.0",
- "globby": "^13.1.2",
- "imurmurhash": "^0.1.4",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "lodash-es": "^4.17.21",
- "meow": "^11.0.0",
- "micromatch": "^4.0.5",
- "open-editor": "^4.0.0",
- "prettier": "^2.8.7",
- "semver": "^7.3.8",
- "slash": "^5.0.0",
- "to-absolute-glob": "^3.0.0",
- "typescript": "^5.0.3"
- },
- "bin": {
- "xo": "cli.js"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/xo/node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
+ "node_modules/tshy/node_modules/rimraf": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
+ "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=14"
},
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/xo/node_modules/@eslint-community/regexpp": {
- "version": "4.5.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
},
- "node_modules/xo/node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
+ "node_modules/tuf-js": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz",
+ "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
+ "@tufjs/models": "2.0.0",
+ "debug": "^4.3.4",
+ "make-fetch-happen": "^13.0.0"
},
"engines": {
- "node": ">= 8"
- }
- },
- "node_modules/xo/node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/xo/node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
+ "prelude-ls": "^1.2.1"
},
"engines": {
- "node": ">= 8"
+ "node": ">= 0.8.0"
}
},
- "node_modules/xo/node_modules/@types/eslint": {
- "version": "8.40.2",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.2.tgz",
- "integrity": "sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==",
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/xo/node_modules/@types/json-schema": {
- "version": "7.0.11",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/xo/node_modules/@types/semver": {
- "version": "7.3.13",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/xo/node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.59.1",
+ "node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.59.1",
- "@typescript-eslint/type-utils": "5.59.1",
- "@typescript-eslint/utils": "5.59.1",
- "debug": "^4.3.4",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=14.16"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/parser": {
- "version": "5.59.1",
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.59.1",
- "@typescript-eslint/types": "5.59.1",
- "@typescript-eslint/typescript-estree": "5.59.1",
- "debug": "^4.3.4"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">= 0.4"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/scope-manager": {
- "version": "5.59.1",
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.59.1",
- "@typescript-eslint/visitor-keys": "5.59.1"
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/type-utils": {
- "version": "5.59.1",
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.59.1",
- "@typescript-eslint/utils": "5.59.1",
- "debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/types": {
- "version": "5.59.1",
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.59.1",
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/types": "5.59.1",
- "@typescript-eslint/visitor-keys": "5.59.1",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=14.17"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/typescript-estree/node_modules/globby": {
- "version": "11.1.0",
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/typescript-estree/node_modules/slash": {
- "version": "3.0.0",
+ "node_modules/unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/utils": {
- "version": "5.59.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.59.1",
- "@typescript-eslint/types": "5.59.1",
- "@typescript-eslint/typescript-estree": "5.59.1",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
- },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
+ "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.59.1",
+ "node_modules/unique-filename": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz",
+ "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.59.1",
- "eslint-visitor-keys": "^3.3.0"
+ "unique-slug": "^4.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/xo/node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "node_modules/unique-slug": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz",
+ "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==",
"dev": true,
"dependencies": {
- "type-fest": "^0.21.3"
+ "imurmurhash": "^0.1.4"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/xo/node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "node_modules/unique-string": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
+ "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
+ "dependencies": {
+ "crypto-random-string": "^4.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/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/xo/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==",
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "peer": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
},
- "engines": {
- "node": ">=8"
+ "bin": {
+ "update-browserslist-db": "cli.js"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "node_modules/xo/node_modules/array-union": {
- "version": "2.1.0",
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "punycode": "^2.1.0"
}
},
- "node_modules/xo/node_modules/braces": {
- "version": "3.0.2",
+ "node_modules/url-or-path": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/url-or-path/-/url-or-path-2.3.0.tgz",
+ "integrity": "sha512-5g9xpEJKjbAY8ikLU3XFpEg3hRLGt6SbCQmDElb1AL7JTW6vMi5Na5e3dMvONHisIu9VHgMAADLHJ8EznYR2ow==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/fisker/url-or-path?sponsor=1"
}
},
- "node_modules/xo/node_modules/camelcase": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
- "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "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,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "bin": {
+ "uuid": "dist/bin/uuid"
}
},
- "node_modules/xo/node_modules/camelcase-keys": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-8.0.2.tgz",
- "integrity": "sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==",
+ "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/v8-to-istanbul": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
"dev": true,
"dependencies": {
- "camelcase": "^7.0.0",
- "map-obj": "^4.3.0",
- "quick-lru": "^6.1.1",
- "type-fest": "^2.13.0"
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
},
"engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=10.12.0"
}
},
- "node_modules/xo/node_modules/camelcase-keys/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
"dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/xo/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
}
},
- "node_modules/xo/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==",
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz",
+ "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "builtins": "^5.0.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/xo/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==",
+ "node_modules/walk-up-path": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
+ "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
"dev": true
},
- "node_modules/xo/node_modules/debug": {
- "version": "4.3.4",
+ "node_modules/watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "peer": true,
"dependencies": {
- "ms": "2.1.2"
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
},
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">=10.13.0"
}
},
- "node_modules/xo/node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
- "node_modules/xo/node_modules/decamelize": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz",
- "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==",
+ "node_modules/webpack": {
+ "version": "5.90.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.0.tgz",
+ "integrity": "sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==",
"dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^1.0.5",
+ "@webassemblyjs/ast": "^1.11.5",
+ "@webassemblyjs/wasm-edit": "^1.11.5",
+ "@webassemblyjs/wasm-parser": "^1.11.5",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.9.0",
+ "browserslist": "^4.21.10",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.15.0",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.2.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.10",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/xo/node_modules/dir-glob": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
},
- "engines": {
- "node": ">=8"
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
}
},
- "node_modules/xo/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/xo/node_modules/eslint-config-xo-typescript": {
- "version": "0.57.0",
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
+ "peer": true,
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- },
- "peerDependencies": {
- "@typescript-eslint/eslint-plugin": ">=5.57.0",
- "@typescript-eslint/parser": ">=5.57.0",
- "eslint": ">=8.0.0",
- "typescript": ">=4.4"
+ "node": ">=10.13.0"
}
},
- "node_modules/xo/node_modules/eslint-formatter-pretty": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-5.0.0.tgz",
- "integrity": "sha512-Uick451FoL22/wXqyScX3inW8ZlD/GQO7eFXj3bqb6N/ZtuuF00/CwSNIKLbFCJPrX5V4EdQBSgJ/UVnmLRnug==",
+ "node_modules/webpack/node_modules/enhanced-resolve": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
+ "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "@types/eslint": "^8.0.0",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.0",
- "eslint-rule-docs": "^1.1.235",
- "log-symbols": "^4.0.0",
- "plur": "^4.0.0",
- "string-width": "^4.2.0",
- "supports-hyperlinks": "^2.0.0"
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
},
"engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=10.13.0"
}
},
- "node_modules/xo/node_modules/eslint-scope": {
+ "node_modules/webpack/node_modules/eslint-scope": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -11804,166 +11655,275 @@
"node": ">=8.0.0"
}
},
- "node_modules/xo/node_modules/eslint-scope/node_modules/estraverse": {
+ "node_modules/webpack/node_modules/estraverse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
+ "peer": true,
"engines": {
"node": ">=4.0"
}
},
- "node_modules/xo/node_modules/eslint-visitor-keys": {
- "version": "3.4.0",
+ "node_modules/webpack/node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/webpack/node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
+ "peer": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=6"
}
},
- "node_modules/xo/node_modules/esrecurse": {
- "version": "4.3.0",
+ "node_modules/well-known-symbols": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz",
+ "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "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,
- "inBundle": true,
- "license": "BSD-2-Clause",
"dependencies": {
- "estraverse": "^5.2.0"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
},
"engines": {
- "node": ">=4.0"
+ "node": ">= 8"
}
},
- "node_modules/xo/node_modules/estraverse": {
- "version": "5.3.0",
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
"dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/fast-glob": {
- "version": "3.2.12",
+ "node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
"dev": true,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=8.6.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/xo/node_modules/fastq": {
- "version": "1.15.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dependencies": {
- "reusify": "^1.0.4"
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
- "node_modules/xo/node_modules/fill-range": {
- "version": "7.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/wide-align/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wide-align/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=="
+ },
+ "node_modules/wide-align/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wide-align/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==",
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/xo/node_modules/find-cache-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
- "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
+ "node_modules/wide-align/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==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
"dev": true,
"dependencies": {
- "common-path-prefix": "^3.0.0",
- "pkg-dir": "^7.0.0"
+ "string-width": "^5.0.1"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "node_modules/widest-line/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/widest-line/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/glob-parent": {
- "version": "5.1.2",
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "is-glob": "^4.0.1"
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">= 6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/xo/node_modules/grapheme-splitter": {
- "version": "1.0.4",
+ "node_modules/wrap-ansi-cjs": {
+ "name": "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-cjs/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,
- "inBundle": true,
- "license": "MIT"
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/xo/node_modules/hosted-git-info": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz",
- "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==",
+ "node_modules/wrap-ansi-cjs/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-cjs/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": {
- "lru-cache": "^7.5.1"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/xo/node_modules/ignore": {
- "version": "5.2.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
+ "node_modules/wrap-ansi-cjs/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/xo/node_modules/is-extglob": {
- "version": "2.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/wrap-ansi-cjs/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/xo/node_modules/is-fullwidth-code-point": {
+ "node_modules/wrap-ansi-cjs/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==",
@@ -11972,269 +11932,295 @@
"node": ">=8"
}
},
- "node_modules/xo/node_modules/is-glob": {
- "version": "4.0.3",
+ "node_modules/wrap-ansi-cjs/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,
- "inBundle": true,
- "license": "MIT",
"dependencies": {
- "is-extglob": "^2.1.1"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/xo/node_modules/is-number": {
- "version": "7.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
+ "node": ">=8"
}
},
- "node_modules/xo/node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "node_modules/wrap-ansi-cjs/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": {
- "p-locate": "^6.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/xo/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
},
- "node_modules/xo/node_modules/meow": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-11.0.0.tgz",
- "integrity": "sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==",
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
- "@types/minimist": "^1.2.2",
- "camelcase-keys": "^8.0.2",
- "decamelize": "^6.0.0",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^4.0.1",
- "read-pkg-up": "^9.1.0",
- "redent": "^4.0.0",
- "trim-newlines": "^4.0.2",
- "type-fest": "^3.1.0",
- "yargs-parser": "^21.1.1"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/merge2": {
- "version": "1.4.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
- "node_modules/xo/node_modules/micromatch": {
- "version": "4.0.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
+ "node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": ">=8.6"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/xo/node_modules/natural-compare-lite": {
- "version": "1.4.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/xo/node_modules/normalize-package-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz",
- "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==",
+ "node_modules/ws": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
"dev": true,
- "dependencies": {
- "hosted-git-info": "^5.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/xo/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "node_modules/xo": {
+ "version": "0.56.0",
+ "resolved": "https://registry.npmjs.org/xo/-/xo-0.56.0.tgz",
+ "integrity": "sha512-ohzSqgQ8POgZ3KNaEK/gxDovb6h3cglxv8+xi9Dn7gmRe8g4qotpOZpMs5ACJhvkJDmJOhiKbk6Uq6Mx1Di9DA==",
"dev": true,
"dependencies": {
- "yocto-queue": "^1.0.0"
+ "@eslint/eslintrc": "^2.1.0",
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
+ "@typescript-eslint/parser": "^6.0.0",
+ "arrify": "^3.0.0",
+ "cosmiconfig": "^8.2.0",
+ "define-lazy-prop": "^3.0.0",
+ "eslint": "^8.45.0",
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-config-xo": "^0.43.1",
+ "eslint-config-xo-typescript": "^1.0.0",
+ "eslint-formatter-pretty": "^5.0.0",
+ "eslint-import-resolver-webpack": "^0.13.2",
+ "eslint-plugin-ava": "^14.0.0",
+ "eslint-plugin-eslint-comments": "^3.2.0",
+ "eslint-plugin-import": "~2.27.5",
+ "eslint-plugin-n": "^16.0.1",
+ "eslint-plugin-no-use-extend-native": "^0.5.0",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-unicorn": "^48.0.0",
+ "esm-utils": "^4.1.2",
+ "find-cache-dir": "^4.0.0",
+ "find-up": "^6.3.0",
+ "get-stdin": "^9.0.0",
+ "get-tsconfig": "^4.6.2",
+ "globby": "^13.2.2",
+ "imurmurhash": "^0.1.4",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash-es": "^4.17.21",
+ "meow": "^12.0.1",
+ "micromatch": "^4.0.5",
+ "open-editor": "^4.0.0",
+ "prettier": "^3.0.0",
+ "semver": "^7.5.4",
+ "slash": "^5.1.0",
+ "to-absolute-glob": "^3.0.0",
+ "typescript": "^5.1.6"
+ },
+ "bin": {
+ "xo": "cli.js"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "node_modules/xo/node_modules/@types/eslint": {
+ "version": "8.56.2",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz",
+ "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
"dev": true,
"dependencies": {
- "p-limit": "^4.0.0"
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/xo/node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/xo/node_modules/path-type": {
- "version": "4.0.0",
+ "node_modules/xo/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,
- "inBundle": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/xo/node_modules/picomatch": {
- "version": "2.3.1",
+ "node_modules/xo/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,
- "inBundle": true,
- "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
"engines": {
- "node": ">=8.6"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/xo/node_modules/pkg-dir": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
- "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "node_modules/xo/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
- "find-up": "^6.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=14.16"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/xo/node_modules/plur": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
- "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
+ "node_modules/xo/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": {
- "irregular-plurals": "^3.2.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=7.0.0"
}
},
- "node_modules/xo/node_modules/queue-microtask": {
- "version": "1.2.3",
- "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"
- }
- ],
- "inBundle": true,
- "license": "MIT"
+ "node_modules/xo/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/xo/node_modules/quick-lru": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz",
- "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==",
+ "node_modules/xo/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/xo/node_modules/eslint-formatter-pretty": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-5.0.0.tgz",
+ "integrity": "sha512-Uick451FoL22/wXqyScX3inW8ZlD/GQO7eFXj3bqb6N/ZtuuF00/CwSNIKLbFCJPrX5V4EdQBSgJ/UVnmLRnug==",
"dev": true,
+ "dependencies": {
+ "@types/eslint": "^8.0.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "eslint-rule-docs": "^1.1.235",
+ "log-symbols": "^4.0.0",
+ "plur": "^4.0.0",
+ "string-width": "^4.2.0",
+ "supports-hyperlinks": "^2.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
+ "node_modules/xo/node_modules/eslint-plugin-prettier": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
+ "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
"dev": true,
"dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.6"
},
"engines": {
- "node": ">=12.20"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
}
},
- "node_modules/xo/node_modules/read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
+ "node_modules/xo/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
"dev": true,
"dependencies": {
- "find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
@@ -12243,158 +12229,122 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "node_modules/xo/node_modules/globby": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"dev": true,
+ "dependencies": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
"engines": {
- "node": ">=12.20"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "node_modules/xo/node_modules/globby/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
"dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
"engines": {
- "node": ">=10"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/read-pkg/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/xo/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,
- "dependencies": {
- "yallist": "^4.0.0"
- },
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/xo/node_modules/read-pkg/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "node_modules/xo/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
"dev": true,
"dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
+ "p-locate": "^6.0.0"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/read-pkg/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "node_modules/xo/node_modules/meow": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
"engines": {
- "node": ">=12.20"
+ "node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/redent": {
+ "node_modules/xo/node_modules/p-limit": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
- "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
"dev": true,
"dependencies": {
- "indent-string": "^5.0.0",
- "strip-indent": "^4.0.0"
+ "yocto-queue": "^1.0.0"
},
"engines": {
- "node": ">=12"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/reusify": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/xo/node_modules/run-parallel": {
- "version": "1.2.0",
- "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"
- }
- ],
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/xo/node_modules/semver": {
- "version": "7.5.0",
+ "node_modules/xo/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "p-limit": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
+ "node_modules/xo/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
"dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/xo/node_modules/semver/node_modules/yallist": {
+ "node_modules/xo/node_modules/plur": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
"dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/xo/node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "dev": true,
+ "dependencies": {
+ "irregular-plurals": "^3.2.0"
+ },
"engines": {
- "node": ">=14.16"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -12426,81 +12376,18 @@
"node": ">=8"
}
},
- "node_modules/xo/node_modules/strip-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
- "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
- "dev": true,
- "dependencies": {
- "min-indent": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/xo/node_modules/to-regex-range": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/xo/node_modules/trim-newlines": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
- "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
+ "node_modules/xo/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/xo/node_modules/tslib": {
- "version": "1.14.1",
- "dev": true,
- "inBundle": true,
- "license": "0BSD"
- },
- "node_modules/xo/node_modules/tsutils": {
- "version": "3.21.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "tslib": "^1.8.1"
- },
- "engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- }
- },
- "node_modules/xo/node_modules/typescript": {
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
- "dev": true,
- "inBundle": true
- },
- "node_modules/xo/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/xo/node_modules/yocto-queue": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
@@ -12527,12 +12414,25 @@
"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==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
"dev": true,
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yaml-types": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/yaml-types/-/yaml-types-0.3.0.tgz",
+ "integrity": "sha512-i9RxAO/LZBiE0NJUy9pbN5jFz5EasYDImzRkj8Y81kkInTi1laia3P3K/wlMKzOxFQutZip8TejvQP/DwgbU7A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16",
+ "npm": ">= 7"
+ },
+ "peerDependencies": {
+ "yaml": "^2.3.0"
}
},
"node_modules/yargs": {
@@ -12553,12 +12453,11 @@
}
},
"node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"engines": {
- "node": ">=10"
+ "node": ">=12"
}
},
"node_modules/yargs/node_modules/ansi-regex": {
@@ -12569,19 +12468,6 @@
"node": ">=8"
}
},
- "node_modules/yargs/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/yargs/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -12619,14 +12505,6 @@
"node": ">=8"
}
},
- "node_modules/yargs/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -12639,6 +12517,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/yoga-wasm-web": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz",
+ "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==",
+ "dev": true
+ },
"node_modules/zen-observable": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.10.0.tgz",
diff --git a/package.json b/package.json
index 0ed60e733..f9bd9d90f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ava",
- "version": "5.3.1",
+ "version": "6.1.1",
"description": "Node.js test runner that lets you develop with confidence.",
"license": "MIT",
"repository": "avajs/ava",
@@ -29,11 +29,14 @@
"types": "./entrypoints/plugin.d.cts",
"default": "./entrypoints/plugin.cjs"
}
+ },
+ "./internal": {
+ "types": "./entrypoints/internal.d.mts"
}
},
"type": "module",
"engines": {
- "node": "^16.18 || ^18.16 || ^20.3"
+ "node": "^18.18 || ^20.8 || ^21"
},
"scripts": {
"test": "./scripts/test.sh"
@@ -80,40 +83,39 @@
"typescript"
],
"dependencies": {
- "@vercel/nft": "^0.22.6",
- "acorn": "^8.9.0",
- "acorn-walk": "^8.2.0",
+ "@vercel/nft": "^0.26.2",
+ "acorn": "^8.11.3",
+ "acorn-walk": "^8.3.2",
"ansi-styles": "^6.2.1",
"arrgv": "^1.0.2",
"arrify": "^3.0.0",
- "callsites": "^4.0.0",
- "cbor": "^9.0.0",
+ "callsites": "^4.1.0",
+ "cbor": "^9.0.1",
"chalk": "^5.3.0",
"chunkd": "^2.0.1",
- "ci-info": "^3.8.0",
+ "ci-info": "^4.0.0",
"ci-parallel-vars": "^1.0.1",
- "clean-yaml-object": "^0.1.0",
- "cli-truncate": "^3.1.0",
+ "cli-truncate": "^4.0.0",
"code-excerpt": "^4.0.0",
"common-path-prefix": "^3.0.0",
"concordance": "^5.0.4",
"currently-unhandled": "^0.4.1",
"debug": "^4.3.4",
"emittery": "^1.0.1",
- "figures": "^5.0.0",
- "globby": "^13.2.1",
+ "figures": "^6.0.1",
+ "globby": "^14.0.0",
"ignore-by-default": "^2.1.0",
"indent-string": "^5.0.0",
"is-plain-object": "^5.0.0",
"is-promise": "^4.0.0",
"matcher": "^5.0.0",
- "mem": "^9.0.2",
+ "memoize": "^10.0.0",
"ms": "^2.1.3",
- "p-map": "^6.0.0",
- "picomatch": "^2.3.1",
- "pkg-conf": "^4.0.0",
+ "p-map": "^7.0.1",
+ "package-config": "^5.0.0",
+ "picomatch": "^3.0.1",
"plur": "^5.1.0",
- "pretty-ms": "^8.0.0",
+ "pretty-ms": "^9.0.0",
"resolve-cwd": "^3.0.0",
"stack-utils": "^2.0.6",
"strip-ansi": "^7.1.0",
@@ -125,33 +127,29 @@
"devDependencies": {
"@ava/test": "github:avajs/test",
"@ava/typescript": "^4.1.0",
- "@sindresorhus/tsconfig": "^3.0.1",
- "@types/node": "^20.3.3",
+ "@sindresorhus/tsconfig": "^5.0.0",
+ "@types/node": "^20.11.10",
"ansi-escapes": "^6.2.0",
- "c8": "^8.0.0",
- "execa": "^7.1.1",
- "expect": "^29.5.0",
- "sinon": "^15.2.0",
- "tap": "^16.3.7",
- "tempy": "^3.0.0",
- "tsd": "^0.28.1",
- "typescript": "^5.1.6",
- "xo": "^0.54.2",
+ "c8": "^9.1.0",
+ "execa": "^8.0.1",
+ "expect": "^29.7.0",
+ "sinon": "^17.0.1",
+ "tap": "^18.7.0",
+ "tempy": "^3.1.0",
+ "tsd": "^0.30.4",
+ "typescript": "~5.3.3",
+ "xo": "^0.56.0",
"zen-observable": "^0.10.0"
},
"peerDependencies": {
- "@ava/typescript": "*",
- "chokidar": "^3.5.3"
+ "@ava/typescript": "*"
},
"peerDependenciesMeta": {
"@ava/typescript": {
"optional": true
- },
- "chokidar": {
- "optional": true
}
},
"volta": {
- "node": "20.3.1"
+ "node": "20.10.0"
}
}
diff --git a/readme.md b/readme.md
index 81ab59c85..fd7161e04 100644
--- a/readme.md
+++ b/readme.md
@@ -1,10 +1,12 @@
-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine/)
+*[Please support our friend Vadim Demedes and the people in Ukraine.](https://stand-with-ukraine.pp.ua/)*
+
+---
#
-AVA is a test runner for Node.js with a concise API, detailed error output, embrace of new language features and process isolation that lets you develop with confidence 🚀
+AVA is a test runner for Node.js with a concise API, detailed error output, embrace of new language features and thread isolation that lets you develop with confidence 🚀
-Follow the [AVA Twitter account](https://twitter.com/ava__js) for updates.
+Watch this repository and follow the [Discussions](https://github.com/avajs/ava/discussions) for updates.
Read our [contributing guide](.github/CONTRIBUTING.md) if you're looking to contribute (issues / PRs / etc).
@@ -23,7 +25,7 @@ Translations: [Español](https://github.com/avajs/ava-docs/blob/main/es_ES/readm
- No implicit globals
- Includes TypeScript definitions
- [Magic assert](#magic-assert)
-- [Isolated environment for each test file](./docs/01-writing-tests.md#process-isolation)
+- [Isolated environment for each test file](./docs/01-writing-tests.md#test-isolation)
- [Promise support](./docs/01-writing-tests.md#promise-support)
- [Async function support](./docs/01-writing-tests.md#async-function-support)
- [Observable support](./docs/01-writing-tests.md#observable-support)
@@ -67,7 +69,7 @@ Alternatively you can install `ava` manually:
npm install --save-dev ava
```
-*Make sure to install AVA locally. As of AVA 4 it can no longer be run globally.*
+*Make sure to install AVA locally. AVA cannot be run globally.*
Don't forget to configure the `test` script in your `package.json` as per above.
@@ -166,14 +168,6 @@ We have a growing list of [common pitfalls](docs/08-common-pitfalls.md) you may
## FAQ
-### Why not `mocha`, `tape`, `tap`?
-
-Mocha requires you to use implicit globals like `describe` and `it` with the default interface (which most people use). It's not very opinionated and executes tests serially without process isolation, making it slow.
-
-Tape and tap are pretty good. AVA is highly inspired by their syntax. They too execute tests serially. Their default [TAP](https://testanything.org) output isn't very user-friendly though so you always end up using an external tap reporter.
-
-In contrast AVA is highly opinionated and runs tests concurrently, with a separate process for each test file. Its default reporter is easy on the eyes and yet AVA still supports TAP output through a CLI flag.
-
### How is the name written and pronounced?
AVA, not Ava or ava. Pronounced [`/ˈeɪvə/`](media/pronunciation.m4a?raw=true): Ay (f**a**ce, m**a**de) V (**v**ie, ha**v**e) A (comm**a**, **a**go)
diff --git a/scripts/ci.sh b/scripts/ci.sh
index 390570328..2838c77e7 100755
--- a/scripts/ci.sh
+++ b/scripts/ci.sh
@@ -1,9 +1,17 @@
#!/bin/bash
set -ex
+# Set environment variable to have the AVA config skip wathch mode tests.
TEST_AVA_SKIP_WATCH_MODE=1 npx c8 --report=none npx test-ava
-# Reduce concurrency and be generous with timeouts to give watch mode tests a
-# better chance of succeeding in a CI environment.
-npx c8 --report=none --no-clean npx test-ava --serial --timeout 30s test/watch-mode
-npx c8 --report=none --no-clean npx tap
+
+# Reduce concurrency to give watch mode tests a better chance of succeeding in
+# a CI environment.
+npx c8 --report=none --no-clean npx test-ava --serial test/watch-mode
+
+# Only run reporter tests on Linux where they're least likely to flake out.
+case "$(uname -s)" in
+ Linux*) npx c8 --report=none --no-clean npx tap;;
+ *) npx c8 --report=none --no-clean npx tap --exclude="test-tap/reporters/{default,tap}.js"
+esac
+
npx c8 report
diff --git a/scripts/test.sh b/scripts/test.sh
index ccc8bd9ab..bc4b1108f 100755
--- a/scripts/test.sh
+++ b/scripts/test.sh
@@ -3,6 +3,6 @@ set -ex
npx xo
npx tsc --noEmit
-npx c8 --report=none npx test-ava
-npx c8 --report=none --no-clean npx tap
+npx c8 --report=none test-ava
+npx c8 --report=none --no-clean tap
npx c8 report
diff --git a/test-tap/assert.js b/test-tap/assert.js
index 32945973f..da89982cf 100644
--- a/test-tap/assert.js
+++ b/test-tap/assert.js
@@ -13,21 +13,40 @@ setOptions({chalkOptions: {level: 0}});
let lastFailure = null;
let lastPassed = false;
+class AssertionFailed extends Error {
+ constructor() {
+ super('Assertion failed');
+ this.name = 'AssertionFailed';
+ }
+}
+
const AssertionsBase = class extends assert.Assertions {
constructor(overwrites = {}) {
super({
pass() {
lastPassed = true;
+ // Match behavior in lib/test.js, not great for this test suite but refactoring is a much larger task.
+ return true;
},
pending(promise) {
promise.then(() => {
lastPassed = true;
}, error => {
- lastFailure = error;
+ if (error.name !== 'AssertionFailed') {
+ lastFailure = error;
+ }
});
},
fail(error) {
lastFailure = error;
+ return new AssertionFailed();
+ },
+ failPending(error) {
+ if (error.name !== 'AssertionFailed') {
+ lastFailure = error;
+ }
+
+ return new AssertionFailed();
},
skip() {},
experiments: {},
@@ -47,20 +66,15 @@ function assertFailure(t, subset) {
t.equal(lastFailure.assertion, subset.assertion);
t.equal(lastFailure.message, subset.message);
t.equal(lastFailure.name, 'AssertionError');
- t.equal(lastFailure.operator, subset.operator);
- if (subset.raw) {
- t.equal(lastFailure.raw.expected, subset.raw.expected);
- t.equal(lastFailure.raw.actual, subset.raw.actual);
- }
- if (subset.values) {
- t.equal(lastFailure.values.length, subset.values.length);
- for (const [i, s] of lastFailure.values.entries()) {
- t.equal(stripAnsi(s.label), subset.values[i].label);
- t.match(stripAnsi(s.formatted), subset.values[i].formatted);
+ if (subset.formattedDetails) {
+ t.equal(lastFailure.formattedDetails.length, subset.formattedDetails.length);
+ for (const [i, s] of lastFailure.formattedDetails.entries()) {
+ t.equal(stripAnsi(s.label), subset.formattedDetails[i].label);
+ t.match(stripAnsi(s.formatted), subset.formattedDetails[i].formatted);
}
} else {
- t.same(lastFailure.values, []);
+ t.same(lastFailure.formattedDetails, []);
}
}
@@ -92,21 +106,41 @@ function add(fn) {
return gatheringPromise;
}
-function failsWith(t, fn, subset, {expectBoolean = true} = {}) {
+function failsWith(t, fn, subset) {
lastFailure = null;
- const retval = fn();
+ try {
+ fn();
+ } catch (error) {
+ if (error.name !== 'AssertionFailed') {
+ throw error;
+ }
+ }
+
assertFailure(t, subset);
- if (expectBoolean) {
- t.notOk(retval);
+}
+
+async function failsWithAsync(t, fn, subset) {
+ lastFailure = null;
+ try {
+ await fn();
+ } catch (error) {
+ if (error.name !== 'AssertionFailed') {
+ throw error;
+ }
}
+
+ assertFailure(t, subset);
}
function throwsAsyncFails(t, fn, subset) {
return add(() => {
lastFailure = null;
- return fn().then(retval => {
- t.equal(retval, undefined);
- assertFailure(t, subset);
+ return fn().catch(error => {
+ if (error.name === 'AssertionFailed') {
+ assertFailure(t, subset);
+ } else {
+ throw error;
+ }
});
});
}
@@ -114,16 +148,27 @@ function throwsAsyncFails(t, fn, subset) {
function notThrowsAsyncFails(t, fn, subset) {
return add(() => {
lastFailure = null;
- return fn().then(retval => {
- t.equal(retval, undefined);
- assertFailure(t, subset);
+ return fn().catch(error => {
+ if (error.name === 'AssertionFailed') {
+ assertFailure(t, subset);
+ } else {
+ throw error;
+ }
});
});
}
function fails(t, fn) {
lastFailure = null;
- const retval = fn();
+ let retval;
+ try {
+ retval = fn();
+ } catch (error) {
+ if (error.name !== 'AssertionFailed') {
+ throw error;
+ }
+ }
+
if (lastFailure) {
t.notOk(retval);
} else {
@@ -137,7 +182,7 @@ function passes(t, fn, {expectBoolean = true} = {}) {
const retval = fn();
if (lastPassed) {
if (expectBoolean) {
- t.ok(retval);
+ t.equal(retval, true);
} else {
t.pass();
}
@@ -172,25 +217,24 @@ test('.pass()', t => {
test('.fail()', t => {
failsWith(t, () => assertions.fail(), {
- assertion: 'fail',
+ assertion: 't.fail()',
message: 'Test failed via `t.fail()`',
});
failsWith(t, () => assertions.fail('my message'), {
- assertion: 'fail',
+ assertion: 't.fail()',
message: 'my message',
});
failsWith(t, () => assertions.fail(), {
- assertion: 'fail',
+ assertion: 't.fail()',
message: 'Test failed via `t.fail()`',
});
failsWith(t, () => assertions.fail(null), {
- assertion: 'fail',
- improperUsage: true,
+ assertion: 't.fail()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -264,64 +308,62 @@ test('.is()', t => {
fails(t, () => assertions.is('foo', Number.NaN));
failsWith(t, () => assertions.is({foo: 'bar'}, {foo: 'bar'}), {
- assertion: 'is',
+ assertion: 't.is()',
message: '',
actual: {foo: 'bar'},
expected: {foo: 'bar'},
- values: [{
+ formattedDetails: [{
label: 'Values are deeply equal to each other, but they are not the same:',
formatted: /foo/,
}],
});
failsWith(t, () => assertions.is('foo', 'bar'), {
- assertion: 'is',
+ assertion: 't.is()',
message: '',
- raw: {actual: 'foo', expected: 'bar'},
- values: [
+ formattedDetails: [
{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 'bar'/},
],
});
failsWith(t, () => assertions.is('foo', 42), {
actual: 'foo',
- assertion: 'is',
+ assertion: 't.is()',
expected: 42,
message: '',
- values: [
+ formattedDetails: [
{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/},
],
});
failsWith(t, () => assertions.is('foo', 42, 'my message'), {
- assertion: 'is',
+ assertion: 't.is()',
message: 'my message',
- values: [
+ formattedDetails: [
{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/},
],
});
failsWith(t, () => assertions.is(0, -0, 'my message'), {
- assertion: 'is',
+ assertion: 't.is()',
message: 'my message',
- values: [
+ formattedDetails: [
{label: 'Difference (- actual, + expected):', formatted: /- 0\n\+ -0/},
],
});
failsWith(t, () => assertions.is(-0, 0, 'my message'), {
- assertion: 'is',
+ assertion: 't.is()',
message: 'my message',
- values: [
+ formattedDetails: [
{label: 'Difference (- actual, + expected):', formatted: /- -0\n\+ 0/},
],
});
failsWith(t, () => assertions.is(0, 0, null), {
- assertion: 'is',
- improperUsage: true,
+ assertion: 't.is()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -340,23 +382,21 @@ test('.not()', t => {
fails(t, () => assertions.not(0 / 0, Number.NaN));
failsWith(t, () => assertions.not('foo', 'foo'), {
- assertion: 'not',
+ assertion: 't.not()',
message: '',
- raw: {actual: 'foo', expected: 'foo'},
- values: [{label: 'Value is the same as:', formatted: /foo/}],
+ formattedDetails: [{label: 'Value is the same as:', formatted: /foo/}],
});
failsWith(t, () => assertions.not('foo', 'foo', 'my message'), {
- assertion: 'not',
+ assertion: 't.not()',
message: 'my message',
- values: [{label: 'Value is the same as:', formatted: /foo/}],
+ formattedDetails: [{label: 'Value is the same as:', formatted: /foo/}],
});
failsWith(t, () => assertions.not(0, 1, null), {
- assertion: 'not',
- improperUsage: true,
+ assertion: 't.not()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -532,30 +572,27 @@ test('.deepEqual()', t => {
});
failsWith(t, () => assertions.deepEqual('foo', 'bar'), {
- assertion: 'deepEqual',
+ assertion: 't.deepEqual()',
message: '',
- raw: {actual: 'foo', expected: 'bar'},
- values: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 'bar'/}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 'bar'/}],
});
failsWith(t, () => assertions.deepEqual('foo', 42), {
- assertion: 'deepEqual',
+ assertion: 't.deepEqual()',
message: '',
- raw: {actual: 'foo', expected: 42},
- values: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/}],
});
failsWith(t, () => assertions.deepEqual('foo', 42, 'my message'), {
- assertion: 'deepEqual',
+ assertion: 't.deepEqual()',
message: 'my message',
- values: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: /- 'foo'\n\+ 42/}],
});
failsWith(t, () => assertions.deepEqual({}, {}, null), {
- assertion: 'deepEqual',
- improperUsage: true,
+ assertion: 't.deepEqual()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -575,24 +612,22 @@ test('.notDeepEqual()', t => {
const expected = {a: 'a'};
failsWith(t, () => assertions.notDeepEqual(actual, expected), {
actual,
- assertion: 'notDeepEqual',
+ assertion: 't.notDeepEqual()',
expected,
message: '',
- raw: {actual, expected},
- values: [{label: 'Value is deeply equal:', formatted: /.*{.*\n.*a: 'a'/}],
+ formattedDetails: [{label: 'Value is deeply equal:', formatted: /.*{.*\n.*a: 'a'/}],
});
failsWith(t, () => assertions.notDeepEqual(['a', 'b'], ['a', 'b'], 'my message'), {
- assertion: 'notDeepEqual',
+ assertion: 't.notDeepEqual()',
message: 'my message',
- values: [{label: 'Value is deeply equal:', formatted: /.*\[.*\n.*'a',\n.*'b',/}],
+ formattedDetails: [{label: 'Value is deeply equal:', formatted: /.*\[.*\n.*'a',\n.*'b',/}],
});
failsWith(t, () => assertions.notDeepEqual({}, [], null), {
- assertion: 'notDeepEqual',
- improperUsage: true,
+ assertion: 't.notDeepEqual()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -721,15 +756,15 @@ test('.like()', t => {
});
failsWith(t, () => assertions.like({a: 'a'}, Object.defineProperties({}, {ignored: {}})), {
- assertion: 'like',
+ assertion: 't.like()',
message: '`t.like()` selector must be a non-empty object',
- values: [{label: 'Called with:', formatted: '{}'}],
+ formattedDetails: [{label: 'Called with:', formatted: '{}'}],
});
failsWith(t, () => assertions.like('foo', 'bar'), {
- assertion: 'like',
+ assertion: 't.like()',
message: '`t.like()` selector must be a non-empty object',
- values: [{label: 'Called with:', formatted: '\'bar\''}],
+ formattedDetails: [{label: 'Called with:', formatted: '\'bar\''}],
});
passes(t, () => {
@@ -754,25 +789,24 @@ test('.like()', t => {
return assertions.like({}, likePattern);
}, {
- assertion: 'like',
+ assertion: 't.like()',
message: '`t.like()` selector must not contain circular references',
- values: [{label: 'Called with:', formatted: '{\n a: \'a\',\n circular: [Circular],\n}'}],
+ formattedDetails: [{label: 'Called with:', formatted: '{\n a: \'a\',\n circular: [Circular],\n}'}],
});
failsWith(t, () => assertions.like({}, {}, null), {
- assertion: 'like',
- improperUsage: true,
+ assertion: 't.like()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
});
failsWith(t, () => assertions.like({a: 'foo', b: 'irrelevant'}, {a: 'bar'}), {
- assertion: 'like',
+ assertion: 't.like()',
message: '',
- values: [{label: 'Difference (- actual, + expected):', formatted: /{\n-\s*a: 'foo',\n\+\s*a: 'bar',\n\s*}/}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: /{\n-\s*a: 'foo',\n\+\s*a: 'bar',\n\s*}/}],
});
passes(t, () => assertions.like({a: [{a: 1, b: 2}]}, {a: [{a: 1}]}));
@@ -795,30 +829,30 @@ test('.like()', t => {
test('.throws()', gather(t => {
// Fails because function doesn't throw.
failsWith(t, () => assertions.throws(() => {}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [{label: 'Function returned:', formatted: /undefined/}],
+ formattedDetails: [{label: 'Function returned:', formatted: /undefined/}],
});
failsWith(t, () => assertions.throws(() => {}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [{label: 'Function returned:', formatted: /undefined/}],
+ formattedDetails: [{label: 'Function returned:', formatted: /undefined/}],
});
// Fails because function doesn't throw. Asserts that 'my message' is used
// as the assertion message (*not* compared against the error).
failsWith(t, () => assertions.throws(() => {}, undefined, 'my message'), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'my message',
- values: [{label: 'Function returned:', formatted: /undefined/}],
+ formattedDetails: [{label: 'Function returned:', formatted: /undefined/}],
});
// Fails because the function returned a promise.
failsWith(t, () => assertions.throws(() => Promise.resolve()), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [{label: 'Function returned a promise. Use `t.throwsAsync()` instead:', formatted: /Promise/}],
+ formattedDetails: [{label: 'Function returned a promise. Use `t.throwsAsync()` instead:', formatted: /Promise/}],
});
// Fails because thrown exception is not an error
@@ -826,9 +860,9 @@ test('.throws()', gather(t => {
const error = 'foo';
throw error;
}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Function threw exception that is not an error:', formatted: /'foo'/},
],
});
@@ -836,7 +870,12 @@ test('.throws()', gather(t => {
// Passes because an error is thrown.
passes(t, () => assertions.throws(() => {
throw new Error('foo');
- }));
+ }), {expectBoolean: false});
+
+ // Passes when string is thrown, only when any is set to true.
+ passes(t, () => assertions.throws(() => {
+ throw 'foo'; // eslint-disable-line no-throw-literal
+ }, {any: true}), {expectBoolean: false});
// Passes because the correct error is thrown.
passes(t, () => {
@@ -844,7 +883,7 @@ test('.throws()', gather(t => {
return assertions.throws(() => {
throw error;
}, {is: error});
- });
+ }, {expectBoolean: false});
// Fails because the thrown value is not an error
fails(t, () => {
@@ -865,7 +904,7 @@ test('.throws()', gather(t => {
// Passes because the correct error is thrown.
passes(t, () => assertions.throws(() => {
throw new TypeError();
- }, {name: 'TypeError'}));
+ }, {name: 'TypeError'}), {expectBoolean: false});
// Fails because the thrown value is not an error
fails(t, () => assertions.throws(() => {
@@ -883,14 +922,14 @@ test('.throws()', gather(t => {
const error = new TypeError();
error.code = 'ERR_TEST';
throw error;
- }, {code: 'ERR_TEST'}));
+ }, {code: 'ERR_TEST'}), {expectBoolean: false});
// Passes because the correct error is thrown.
passes(t, () => assertions.throws(() => {
const error = new TypeError();
error.code = 42;
throw error;
- }, {code: 42}));
+ }, {code: 42}), {expectBoolean: false});
// Fails because the thrown value is not the right one
fails(t, () => assertions.throws(() => {
@@ -912,17 +951,16 @@ test('.throws()', gather(t => {
passes(t, () => assertions.throws(() => {
throw new Error('foo');
- }, undefined));
+ }, undefined), {expectBoolean: false});
passes(t, async () => {
await assertions.throwsAsync(() => Promise.reject(new Error('foo')), undefined);
- });
+ }, {expectBoolean: false});
failsWith(t, () => assertions.throws(() => {}, undefined, null), {
- assertion: 'throws',
- improperUsage: true,
+ assertion: 't.throws()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -939,9 +977,9 @@ test('.throws()', gather(t => {
{message: 'my error'},
),
{
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Function threw unexpected exception:', formatted: /error/},
{label: 'Expected message to equal:', formatted: /my error/},
],
@@ -950,7 +988,7 @@ test('.throws()', gather(t => {
passes(t, () => assertions.throws(() => {
throw new Error('error');
- }, {message: 'error'}));
+ }, {message: 'error'}), {expectBoolean: false});
// Fails because the regular expression in the message is incorrect
failsWith(
@@ -963,9 +1001,9 @@ test('.throws()', gather(t => {
{message: /my error/},
),
{
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Function threw unexpected exception:', formatted: /error/},
{label: 'Expected message to match:', formatted: /my error/},
],
@@ -974,7 +1012,7 @@ test('.throws()', gather(t => {
passes(t, () => assertions.throws(() => {
throw new Error('error');
- }, {message: /error/}));
+ }, {message: /error/}), {expectBoolean: false});
// Fails because the function in the message returns false
failsWith(
@@ -987,9 +1025,9 @@ test('.throws()', gather(t => {
{message: () => false},
),
{
- assertion: 'throws',
+ assertion: 't.throws()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Function threw unexpected exception:', formatted: /error/},
{label: 'Expected message to return true:', formatted: /Function/},
],
@@ -998,7 +1036,7 @@ test('.throws()', gather(t => {
passes(t, () => assertions.throws(() => {
throw new Error('error');
- }, {message: () => true}));
+ }, {message: () => true}), {expectBoolean: false});
}));
test('.throws() returns the thrown error', t => {
@@ -1015,34 +1053,44 @@ test('.throws() returns the thrown error', t => {
test('.throwsAsync()', gather(t => {
// Fails because the promise is resolved, not rejected.
throwsAsyncFails(t, () => assertions.throwsAsync(Promise.resolve('foo')), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
message: '',
- values: [{label: 'Promise resolved with:', formatted: /'foo'/}],
+ formattedDetails: [{label: 'Promise resolved with:', formatted: /'foo'/}],
});
throwsAsyncFails(t, () => assertions.throwsAsync(Promise.resolve('foo')), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
message: '',
- values: [{label: 'Promise resolved with:', formatted: /'foo'/}],
+ formattedDetails: [{label: 'Promise resolved with:', formatted: /'foo'/}],
});
// Fails because the promise is resolved with an Error
throwsAsyncFails(t, () => assertions.throwsAsync(Promise.resolve(new Error())), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
message: '',
- values: [{label: 'Promise resolved with:', formatted: /Error/}],
+ formattedDetails: [{label: 'Promise resolved with:', formatted: /Error/}],
});
// Fails because the function returned a promise that resolved, not rejected.
throwsAsyncFails(t, () => assertions.throwsAsync(() => Promise.resolve('foo')), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
+ message: '',
+ formattedDetails: [{label: 'Returned promise resolved with:', formatted: /'foo'/}],
+ });
+
+ // Fails because the function returned a promise that rejected, but not with an error.
+ throwsAsyncFails(t, () => assertions.throwsAsync(() => Promise.reject('foo')), { // eslint-disable-line prefer-promise-reject-errors
+ assertion: 't.throwsAsync()',
message: '',
- values: [{label: 'Returned promise resolved with:', formatted: /'foo'/}],
+ formattedDetails: [{label: 'Returned promise rejected with exception that is not an error:', formatted: /'foo'/}],
});
// Passes because the promise was rejected with an error.
throwsAsyncPasses(t, () => assertions.throwsAsync(Promise.reject(new Error())));
+ // Passes because the promise was rejected with an with an non-error exception, & set `any` to true in expectation.
+ throwsAsyncPasses(t, () => assertions.throwsAsync(Promise.reject('foo'), {any: true})); // eslint-disable-line prefer-promise-reject-errors
+
// Passes because the function returned a promise rejected with an error.
throwsAsyncPasses(t, () => assertions.throwsAsync(() => Promise.reject(new Error())));
@@ -1050,27 +1098,26 @@ test('.throwsAsync()', gather(t => {
throwsAsyncFails(t, () => assertions.throwsAsync(() => {
throw new Error('sync');
}, undefined, 'message'), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
message: 'message',
- values: [
+ formattedDetails: [
{label: 'Function threw synchronously. Use `t.throws()` instead:', formatted: /Error/},
],
});
// Fails because the function did not return a promise
throwsAsyncFails(t, () => assertions.throwsAsync(() => {}, undefined, 'message'), {
- assertion: 'throwsAsync',
+ assertion: 't.throwsAsync()',
message: 'message',
- values: [
+ formattedDetails: [
{label: 'Function returned:', formatted: /undefined/},
],
});
throwsAsyncFails(t, () => assertions.throwsAsync(Promise.resolve(), undefined, null), {
- assertion: 'throwsAsync',
- improperUsage: true,
+ assertion: 't.throwsAsync()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1097,160 +1144,170 @@ test('.throwsAsync() returns the rejection reason of a promise returned by the f
test('.throws() fails if passed a bad value', t => {
failsWith(t, () => assertions.throws('not a function'), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: '`t.throws()` must be called with a function',
- values: [{label: 'Called with:', formatted: /not a function/}],
+ formattedDetails: [{label: 'Called with:', formatted: /not a function/}],
});
t.end();
});
-test('.throwsAsync() fails if passed a bad value', t => {
- failsWith(t, () => assertions.throwsAsync('not a function'), {
- assertion: 'throwsAsync',
+test('.throwsAsync() fails if passed a bad value', gather(t => {
+ throwsAsyncFails(t, () => assertions.throwsAsync('not a function'), {
+ assertion: 't.throwsAsync()',
message: '`t.throwsAsync()` must be called with a function or promise',
- values: [{label: 'Called with:', formatted: /not a function/}],
- }, {expectBoolean: false});
-
- t.end();
-});
+ formattedDetails: [{label: 'Called with:', formatted: /not a function/}],
+ });
+}));
test('.throws() fails if passed a bad expectation', t => {
failsWith(t, () => assertions.throws(() => {}, true), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /true/}],
+ formattedDetails: [{label: 'Called with:', formatted: /true/}],
});
failsWith(t, () => assertions.throws(() => {}, 'foo'), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /foo/}],
+ formattedDetails: [{label: 'Called with:', formatted: /foo/}],
});
failsWith(t, () => assertions.throws(() => {}, /baz/), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /baz/}],
+ formattedDetails: [{label: 'Called with:', formatted: /baz/}],
});
failsWith(t, () => assertions.throws(() => {}, class Bar {}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /Bar/}],
+ formattedDetails: [{label: 'Called with:', formatted: /Bar/}],
});
failsWith(t, () => assertions.throws(() => {}, {}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /{}/}],
+ formattedDetails: [{label: 'Called with:', formatted: /{}/}],
});
failsWith(t, () => assertions.throws(() => {}, []), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /\[]/}],
+ formattedDetails: [{label: 'Called with:', formatted: /\[]/}],
+ });
+
+ failsWith(t, () => assertions.throws(() => {}, {any: {}}), {
+ assertion: 't.throws()',
+ message: 'The `any` property of the second argument to `t.throws()` must be a boolean',
+ formattedDetails: [{label: 'Called with:', formatted: /any: {}/}],
});
failsWith(t, () => assertions.throws(() => {}, {code: {}}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The `code` property of the second argument to `t.throws()` must be a string or number',
- values: [{label: 'Called with:', formatted: /code: {}/}],
+ formattedDetails: [{label: 'Called with:', formatted: /code: {}/}],
});
failsWith(t, () => assertions.throws(() => {}, {instanceOf: null}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The `instanceOf` property of the second argument to `t.throws()` must be a function',
- values: [{label: 'Called with:', formatted: /instanceOf: null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /instanceOf: null/}],
});
failsWith(t, () => assertions.throws(() => {}, {message: null}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The `message` property of the second argument to `t.throws()` must be a string, regular expression or a function',
- values: [{label: 'Called with:', formatted: /message: null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /message: null/}],
});
failsWith(t, () => assertions.throws(() => {}, {name: null}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The `name` property of the second argument to `t.throws()` must be a string',
- values: [{label: 'Called with:', formatted: /name: null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /name: null/}],
});
failsWith(t, () => assertions.throws(() => {}, {is: {}, message: '', name: '', of() {}, foo: null}), {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` contains unexpected properties',
- values: [{label: 'Called with:', formatted: /foo: null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /foo: null/}],
});
t.end();
});
-test('.throwsAsync() fails if passed a bad expectation', t => {
- failsWith(t, () => assertions.throwsAsync(() => {}, true), {
- assertion: 'throwsAsync',
+test('.throwsAsync() fails if passed a bad expectation', async t => {
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, true), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /true/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /true/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, 'foo'), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, 'foo'), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /foo/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /foo/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, /baz/), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, /baz/), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /baz/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /baz/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, class Bar {}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, class Bar {}), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /Bar/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /Bar/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {}), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /{}/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /{}/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, []), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, []), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object, `null` or `undefined`',
- values: [{label: 'Called with:', formatted: /\[]/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /\[]/}],
+ });
+
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {any: {}}), {
+ assertion: 't.throwsAsync()',
+ message: 'The `any` property of the second argument to `t.throwsAsync()` must be a boolean',
+ formattedDetails: [{label: 'Called with:', formatted: /any: {}/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {code: {}}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {code: {}}), {
+ assertion: 't.throwsAsync()',
message: 'The `code` property of the second argument to `t.throwsAsync()` must be a string or number',
- values: [{label: 'Called with:', formatted: /code: {}/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /code: {}/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {instanceOf: null}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {instanceOf: null}), {
+ assertion: 't.throwsAsync()',
message: 'The `instanceOf` property of the second argument to `t.throwsAsync()` must be a function',
- values: [{label: 'Called with:', formatted: /instanceOf: null/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /instanceOf: null/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {message: null}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {message: null}), {
+ assertion: 't.throwsAsync()',
message: 'The `message` property of the second argument to `t.throwsAsync()` must be a string, regular expression or a function',
- values: [{label: 'Called with:', formatted: /message: null/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /message: null/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {name: null}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {name: null}), {
+ assertion: 't.throwsAsync()',
message: 'The `name` property of the second argument to `t.throwsAsync()` must be a string',
- values: [{label: 'Called with:', formatted: /name: null/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /name: null/}],
+ });
- failsWith(t, () => assertions.throwsAsync(() => {}, {is: {}, message: '', name: '', of() {}, foo: null}), {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => assertions.throwsAsync(() => {}, {is: {}, message: '', name: '', of() {}, foo: null}), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` contains unexpected properties',
- values: [{label: 'Called with:', formatted: /foo: null/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Called with:', formatted: /foo: null/}],
+ });
t.end();
});
@@ -1261,23 +1318,21 @@ test('.throws() fails if passed null expectation', t => {
failsWith(t, () => {
asserter.throws(() => {}, null);
}, {
- assertion: 'throws',
+ assertion: 't.throws()',
message: 'The second argument to `t.throws()` must be an expectation object or `undefined`',
- values: [{label: 'Called with:', formatted: /null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /null/}],
});
t.end();
});
-test('.throwsAsync() fails if passed null', t => {
+test('.throwsAsync() fails if passed null', async t => {
const asserter = new AssertionsBase();
- failsWith(t, () => {
- asserter.throwsAsync(() => {}, null);
- }, {
- assertion: 'throwsAsync',
+ await failsWithAsync(t, () => asserter.throwsAsync(() => {}, null), {
+ assertion: 't.throwsAsync()',
message: 'The second argument to `t.throwsAsync()` must be an expectation object or `undefined`',
- values: [{label: 'Called with:', formatted: /null/}],
+ formattedDetails: [{label: 'Called with:', formatted: /null/}],
});
t.end();
@@ -1285,38 +1340,37 @@ test('.throwsAsync() fails if passed null', t => {
test('.notThrows()', gather(t => {
// Passes because the function doesn't throw
- passes(t, () => assertions.notThrows(() => {}), {expectBoolean: false});
+ passes(t, () => assertions.notThrows(() => {}));
- passes(t, () => assertions.notThrows(() => {}), {expectBoolean: false});
+ passes(t, () => assertions.notThrows(() => {}));
// Fails because the function throws.
failsWith(t, () => assertions.notThrows(() => {
throw new Error('foo');
}), {
- assertion: 'notThrows',
+ assertion: 't.notThrows()',
message: '',
- values: [{label: 'Function threw:', formatted: /foo/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Function threw:', formatted: /foo/}],
+ });
// Fails because the function throws. Asserts that message is used for the
// assertion, not to validate the thrown error.
failsWith(t, () => assertions.notThrows(() => {
throw new Error('foo');
}, 'my message'), {
- assertion: 'notThrows',
+ assertion: 't.notThrows()',
message: 'my message',
- values: [{label: 'Function threw:', formatted: /foo/}],
- }, {expectBoolean: false});
+ formattedDetails: [{label: 'Function threw:', formatted: /foo/}],
+ });
failsWith(t, () => assertions.notThrows(() => {}, null), {
- assertion: 'notThrows',
- improperUsage: true,
+ assertion: 't.notThrows()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
- }, {expectBoolean: false});
+ });
}));
test('.notThrowsAsync()', gather(t => {
@@ -1327,9 +1381,9 @@ test('.notThrowsAsync()', gather(t => {
// Fails because the promise is rejected
notThrowsAsyncFails(t, () => assertions.notThrowsAsync(Promise.reject(new Error())), {
- assertion: 'notThrowsAsync',
+ assertion: 't.notThrowsAsync()',
message: '',
- values: [{label: 'Promise rejected with:', formatted: /Error/}],
+ formattedDetails: [{label: 'Promise rejected with:', formatted: /Error/}],
});
// Passes because the function returned a resolved promise
@@ -1337,67 +1391,56 @@ test('.notThrowsAsync()', gather(t => {
// Fails because the function returned a rejected promise
notThrowsAsyncFails(t, () => assertions.notThrowsAsync(() => Promise.reject(new Error())), {
- assertion: 'notThrowsAsync',
+ assertion: 't.notThrowsAsync()',
message: '',
- values: [{label: 'Returned promise rejected with:', formatted: /Error/}],
+ formattedDetails: [{label: 'Returned promise rejected with:', formatted: /Error/}],
});
// Fails because the function throws synchronously
notThrowsAsyncFails(t, () => assertions.notThrowsAsync(() => {
throw new Error('sync');
}, 'message'), {
- assertion: 'notThrowsAsync',
+ assertion: 't.notThrowsAsync()',
message: 'message',
- values: [
+ formattedDetails: [
{label: 'Function threw:', formatted: /Error/},
],
});
// Fails because the function did not return a promise
notThrowsAsyncFails(t, () => assertions.notThrowsAsync(() => {}, 'message'), {
- assertion: 'notThrowsAsync',
+ assertion: 't.notThrowsAsync()',
message: 'message',
- values: [
+ formattedDetails: [
{label: 'Function did not return a promise. Use `t.notThrows()` instead:', formatted: /undefined/},
],
});
notThrowsAsyncFails(t, () => assertions.notThrowsAsync(Promise.resolve(), null), {
- assertion: 'notThrowsAsync',
- improperUsage: true,
+ assertion: 't.notThrowsAsync()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
});
}));
-test('.notThrowsAsync() returns undefined for a fulfilled promise', t => assertions.notThrowsAsync(Promise.resolve(Symbol(''))).then(actual => {
- t.equal(actual, undefined);
-}));
-
-test('.notThrowsAsync() returns undefined for a fulfilled promise returned by the function', t => assertions.notThrowsAsync(() => Promise.resolve(Symbol(''))).then(actual => {
- t.equal(actual, undefined);
-}));
-
test('.notThrows() fails if passed a bad value', t => {
failsWith(t, () => assertions.notThrows('not a function'), {
- assertion: 'notThrows',
+ assertion: 't.notThrows()',
message: '`t.notThrows()` must be called with a function',
- values: [{label: 'Called with:', formatted: /not a function/}],
+ formattedDetails: [{label: 'Called with:', formatted: /not a function/}],
});
t.end();
});
-test('.notThrowsAsync() fails if passed a bad value', t => {
- failsWith(t, () => assertions.notThrowsAsync('not a function'), {
- assertion: 'notThrowsAsync',
+test('.notThrowsAsync() fails if passed a bad value', async t => {
+ await failsWithAsync(t, () => assertions.notThrowsAsync('not a function'), {
+ assertion: 't.notThrowsAsync()',
message: '`t.notThrowsAsync()` must be called with a function or promise',
- values: [{label: 'Called with:', formatted: /not a function/}],
- }, {
- expectBoolean: false,
+ formattedDetails: [{label: 'Called with:', formatted: /not a function/}],
});
t.end();
@@ -1455,9 +1498,9 @@ test('.snapshot()', async t => {
}
failsWith(t, () => assertions.snapshot({foo: 'not bar'}), {
- assertion: 'snapshot',
+ assertion: 't.snapshot()',
message: 'Did not match snapshot',
- values: [{label: 'Difference (- actual, + expected):', formatted: ' {\n- foo: \'not bar\',\n+ foo: \'bar\',\n }'}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: ' {\n- foo: \'not bar\',\n+ foo: \'bar\',\n }'}],
});
}
@@ -1468,66 +1511,48 @@ test('.snapshot()', async t => {
}
failsWith(t, () => assertions.snapshot({foo: 'not bar'}, 'my message'), {
- assertion: 'snapshot',
+ assertion: 't.snapshot()',
message: 'my message',
- values: [{label: 'Difference (- actual, + expected):', formatted: ' {\n- foo: \'not bar\',\n+ foo: \'bar\',\n }'}],
+ formattedDetails: [{label: 'Difference (- actual, + expected):', formatted: ' {\n- foo: \'not bar\',\n+ foo: \'bar\',\n }'}],
});
}
{
const assertions = setup('bad message');
failsWith(t, () => assertions.snapshot(null, null), {
- assertion: 'snapshot',
- improperUsage: true,
+ assertion: 't.snapshot()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
});
failsWith(t, () => assertions.snapshot(null, ''), {
- assertion: 'snapshot',
- improperUsage: true,
+ assertion: 't.snapshot()',
message: 'The snapshot assertion message must be a non-empty string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: '\'\'',
}],
});
}
- {
- // See https://github.com/avajs/ava/issues/2669
- const assertions = setup('id');
- failsWith(t, () => assertions.snapshot({foo: 'bar'}, {id: 'an id'}), {
- assertion: 'snapshot',
- improperUsage: true,
- message: 'AVA 4 no longer supports snapshot IDs',
- values: [{
- label: 'Called with id:',
- formatted: '\'an id\'',
- }],
- });
- }
-
await manager.save();
t.end();
});
test('.truthy()', t => {
failsWith(t, () => assertions.truthy(0), {
- assertion: 'truthy',
+ assertion: 't.truthy()',
message: '',
- operator: '!!',
- values: [{label: 'Value is not truthy:', formatted: /0/}],
+ formattedDetails: [{label: 'Value is not truthy:', formatted: /0/}],
});
failsWith(t, () => assertions.truthy(false, 'my message'), {
- assertion: 'truthy',
+ assertion: 't.truthy()',
message: 'my message',
- operator: '!!',
- values: [{label: 'Value is not truthy:', formatted: /false/}],
+ formattedDetails: [{label: 'Value is not truthy:', formatted: /false/}],
});
passes(t, () => assertions.truthy(1)
@@ -1536,10 +1561,9 @@ test('.truthy()', t => {
passes(t, () => assertions.truthy(1) && assertions.truthy(true));
failsWith(t, () => assertions.truthy(true, null), {
- assertion: 'truthy',
- improperUsage: true,
+ assertion: 't.truthy()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1550,17 +1574,15 @@ test('.truthy()', t => {
test('.falsy()', t => {
failsWith(t, () => assertions.falsy(1), {
- assertion: 'falsy',
+ assertion: 't.falsy()',
message: '',
- operator: '!',
- values: [{label: 'Value is not falsy:', formatted: /1/}],
+ formattedDetails: [{label: 'Value is not falsy:', formatted: /1/}],
});
failsWith(t, () => assertions.falsy(true, 'my message'), {
- assertion: 'falsy',
+ assertion: 't.falsy()',
message: 'my message',
- operator: '!',
- values: [{label: 'Value is not falsy:', formatted: /true/}],
+ formattedDetails: [{label: 'Value is not falsy:', formatted: /true/}],
});
passes(t, () => assertions.falsy(0)
@@ -1570,10 +1592,9 @@ test('.falsy()', t => {
&& assertions.falsy(false));
failsWith(t, () => assertions.falsy(false, null), {
- assertion: 'falsy',
- improperUsage: true,
+ assertion: 't.falsy()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1584,27 +1605,27 @@ test('.falsy()', t => {
test('.true()', t => {
failsWith(t, () => assertions.true(1), {
- assertion: 'true',
+ assertion: 't.true()',
message: '',
- values: [{label: 'Value is not `true`:', formatted: /1/}],
+ formattedDetails: [{label: 'Value is not `true`:', formatted: /1/}],
});
failsWith(t, () => assertions.true(0), {
- assertion: 'true',
+ assertion: 't.true()',
message: '',
- values: [{label: 'Value is not `true`:', formatted: /0/}],
+ formattedDetails: [{label: 'Value is not `true`:', formatted: /0/}],
});
failsWith(t, () => assertions.true(false), {
- assertion: 'true',
+ assertion: 't.true()',
message: '',
- values: [{label: 'Value is not `true`:', formatted: /false/}],
+ formattedDetails: [{label: 'Value is not `true`:', formatted: /false/}],
});
failsWith(t, () => assertions.true('foo', 'my message'), {
- assertion: 'true',
+ assertion: 't.true()',
message: 'my message',
- values: [{label: 'Value is not `true`:', formatted: /foo/}],
+ formattedDetails: [{label: 'Value is not `true`:', formatted: /foo/}],
});
passes(t, () => assertions.true(true));
@@ -1615,10 +1636,9 @@ test('.true()', t => {
});
failsWith(t, () => assertions.true(true, null), {
- assertion: 'true',
- improperUsage: true,
+ assertion: 't.true()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1629,27 +1649,27 @@ test('.true()', t => {
test('.false()', t => {
failsWith(t, () => assertions.false(0), {
- assertion: 'false',
+ assertion: 't.false()',
message: '',
- values: [{label: 'Value is not `false`:', formatted: /0/}],
+ formattedDetails: [{label: 'Value is not `false`:', formatted: /0/}],
});
failsWith(t, () => assertions.false(1), {
- assertion: 'false',
+ assertion: 't.false()',
message: '',
- values: [{label: 'Value is not `false`:', formatted: /1/}],
+ formattedDetails: [{label: 'Value is not `false`:', formatted: /1/}],
});
failsWith(t, () => assertions.false(true), {
- assertion: 'false',
+ assertion: 't.false()',
message: '',
- values: [{label: 'Value is not `false`:', formatted: /true/}],
+ formattedDetails: [{label: 'Value is not `false`:', formatted: /true/}],
});
failsWith(t, () => assertions.false('foo', 'my message'), {
- assertion: 'false',
+ assertion: 't.false()',
message: 'my message',
- values: [{label: 'Value is not `false`:', formatted: /foo/}],
+ formattedDetails: [{label: 'Value is not `false`:', formatted: /foo/}],
});
passes(t, () => assertions.false(false));
@@ -1660,10 +1680,9 @@ test('.false()', t => {
});
failsWith(t, () => assertions.false(false, null), {
- assertion: 'false',
- improperUsage: true,
+ assertion: 't.false()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1678,28 +1697,27 @@ test('.regex()', t => {
passes(t, () => assertions.regex('abc', /^abc$/));
failsWith(t, () => assertions.regex('foo', /^abc$/), {
- assertion: 'regex',
+ assertion: 't.regex()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Value must match expression:', formatted: /foo/},
{label: 'Regular expression:', formatted: /\/\^abc\$\//},
],
});
failsWith(t, () => assertions.regex('foo', /^abc$/, 'my message'), {
- assertion: 'regex',
+ assertion: 't.regex()',
message: 'my message',
- values: [
+ formattedDetails: [
{label: 'Value must match expression:', formatted: /foo/},
{label: 'Regular expression:', formatted: /\/\^abc\$\//},
],
});
failsWith(t, () => assertions.regex('foo', /^abc$/, null), {
- assertion: 'regex',
- improperUsage: true,
+ assertion: 't.regex()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1710,16 +1728,15 @@ test('.regex()', t => {
test('.regex() fails if passed a bad value', t => {
failsWith(t, () => assertions.regex(42, /foo/), {
- assertion: 'regex',
- improperUsage: true,
+ assertion: 't.regex()',
message: '`t.regex()` must be called with a string',
- values: [{label: 'Called with:', formatted: /42/}],
+ formattedDetails: [{label: 'Called with:', formatted: /42/}],
});
failsWith(t, () => assertions.regex('42', {}), {
- assertion: 'regex',
+ assertion: 't.regex()',
message: '`t.regex()` must be called with a regular expression',
- values: [{label: 'Called with:', formatted: /{}/}],
+ formattedDetails: [{label: 'Called with:', formatted: /{}/}],
});
t.end();
@@ -1731,28 +1748,27 @@ test('.notRegex()', t => {
passes(t, () => assertions.notRegex('abc', /def/));
failsWith(t, () => assertions.notRegex('abc', /abc/), {
- assertion: 'notRegex',
+ assertion: 't.notRegex()',
message: '',
- values: [
+ formattedDetails: [
{label: 'Value must not match expression:', formatted: /abc/},
{label: 'Regular expression:', formatted: /\/abc\//},
],
});
failsWith(t, () => assertions.notRegex('abc', /abc/, 'my message'), {
- assertion: 'notRegex',
+ assertion: 't.notRegex()',
message: 'my message',
- values: [
+ formattedDetails: [
{label: 'Value must not match expression:', formatted: /abc/},
{label: 'Regular expression:', formatted: /\/abc\//},
],
});
failsWith(t, () => assertions.notRegex('abc', /abc/, null), {
- assertion: 'notRegex',
- improperUsage: true,
+ assertion: 't.notRegex()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
@@ -1763,15 +1779,15 @@ test('.notRegex()', t => {
test('.notRegex() fails if passed a bad value', t => {
failsWith(t, () => assertions.notRegex(42, /foo/), {
- assertion: 'notRegex',
+ assertion: 't.notRegex()',
message: '`t.notRegex()` must be called with a string',
- values: [{label: 'Called with:', formatted: /42/}],
+ formattedDetails: [{label: 'Called with:', formatted: /42/}],
});
failsWith(t, () => assertions.notRegex('42', {}), {
- assertion: 'notRegex',
+ assertion: 't.notRegex()',
message: '`t.notRegex()` must be called with a regular expression',
- values: [{label: 'Called with:', formatted: /{}/}],
+ formattedDetails: [{label: 'Called with:', formatted: /{}/}],
});
t.end();
@@ -1779,17 +1795,15 @@ test('.notRegex() fails if passed a bad value', t => {
test('.assert()', t => {
failsWith(t, () => assertions.assert(0), {
- assertion: 'assert',
+ assertion: 't.assert()',
message: '',
- operator: '!!',
- values: [{label: 'Value is not truthy:', formatted: /0/}],
+ formattedDetails: [{label: 'Value is not truthy:', formatted: /0/}],
});
failsWith(t, () => assertions.assert(false, 'my message'), {
- assertion: 'assert',
+ assertion: 't.assert()',
message: 'my message',
- operator: '!!',
- values: [{label: 'Value is not truthy:', formatted: /false/}],
+ formattedDetails: [{label: 'Value is not truthy:', formatted: /false/}],
});
passes(t, () => assertions.assert(1)
@@ -1798,10 +1812,9 @@ test('.assert()', t => {
passes(t, () => assertions.assert(1) && assertions.assert(true));
failsWith(t, () => assertions.assert(null, null), {
- assertion: 'assert',
- improperUsage: true,
+ assertion: 't.assert()',
message: 'The assertion message must be a string',
- values: [{
+ formattedDetails: [{
label: 'Called with:',
formatted: /null/,
}],
diff --git a/test-tap/fixture/pkg-conf/fail-without-assertions/package.json b/test-tap/fixture/package-config/fail-without-assertions/package.json
similarity index 100%
rename from test-tap/fixture/pkg-conf/fail-without-assertions/package.json
rename to test-tap/fixture/package-config/fail-without-assertions/package.json
diff --git a/test-tap/fixture/pkg-conf/fail-without-assertions/test.cjs b/test-tap/fixture/package-config/fail-without-assertions/test.cjs
similarity index 100%
rename from test-tap/fixture/pkg-conf/fail-without-assertions/test.cjs
rename to test-tap/fixture/package-config/fail-without-assertions/test.cjs
diff --git a/test-tap/fixture/process-cwd-default.cjs b/test-tap/fixture/process-cwd-default.cjs
index 478aaf276..17c35b8b5 100644
--- a/test-tap/fixture/process-cwd-default.cjs
+++ b/test-tap/fixture/process-cwd-default.cjs
@@ -3,8 +3,8 @@ const path = require('node:path');
const test = require('../../entrypoints/main.cjs');
test('test', async t => {
- const {packageConfigSync, packageJsonPath} = await import('pkg-conf');
- const conf = packageConfigSync('ava');
- const pkgDir = path.dirname(packageJsonPath(conf));
- t.is(process.cwd(), pkgDir);
+ const {packageConfigSync, packageJsonPath} = await import('package-config');
+ const config = packageConfigSync('ava');
+ const packageDirectory = path.dirname(packageJsonPath(config));
+ t.is(process.cwd(), packageDirectory);
});
diff --git a/test-tap/fixture/report/regular/traces-in-t-throws.cjs b/test-tap/fixture/report/regular/traces-in-t-throws.cjs
index 8ed95cc73..3cccf6833 100644
--- a/test-tap/fixture/report/regular/traces-in-t-throws.cjs
+++ b/test-tap/fixture/report/regular/traces-in-t-throws.cjs
@@ -16,12 +16,14 @@ test('notThrows', t => {
t.notThrows(() => throwError());
});
-test('notThrowsAsync', t => {
- t.notThrowsAsync(() => throwError());
+test('notThrowsAsync', async t => {
+ await t.notThrowsAsync(() => throwError());
});
-test('throwsAsync', t => {
- t.throwsAsync(() => throwError(), {instanceOf: TypeError});
+test('throwsAsync', async t => {
+ await t.throwsAsync(() => throwError(), {instanceOf: TypeError});
});
-test('throwsAsync different error', t => t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError}));
+test('throwsAsync different error', async t => {
+ await t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError});
+});
diff --git a/test-tap/globs.js b/test-tap/globs.js
index 486e7085d..e43123d35 100644
--- a/test-tap/globs.js
+++ b/test-tap/globs.js
@@ -201,101 +201,6 @@ test('isTest after provider modifications', t => {
t.end();
});
-test('isIgnoredByWatcher with defaults', t => {
- const options = {
- ...globs.normalizeGlobs({extensions: ['js'], providers: []}),
- cwd: fixture(),
- };
-
- function isIgnoredByWatcher(file) {
- t.ok(globs.classifyAva5Watcher(fixture(file), options).isIgnoredByWatcher, `${file} should be ignored`);
- }
-
- function notIgnored(file) {
- t.notOk(globs.classifyAva5Watcher(fixture(file), options).isIgnoredByWatcher, `${file} should not be ignored`);
- }
-
- notIgnored('foo-bar.js');
- notIgnored('foo.js');
- notIgnored('foo/blah.js');
- notIgnored('bar/foo.js');
-
- notIgnored('_foo-bar.js');
- notIgnored('foo/_foo-bar.js');
- notIgnored('fixtures/foo.js');
- notIgnored('helpers/foo.js');
-
- notIgnored('snapshots/foo.js.snap');
- isIgnoredByWatcher('snapshots/foo.js.snap.md');
- notIgnored('foo-bar.json');
- notIgnored('foo-bar.coffee');
-
- notIgnored('bar.js');
- notIgnored('bar/bar.js');
- isIgnoredByWatcher('node_modules/foo.js');
- t.end();
-});
-
-test('isIgnoredByWatcher with patterns', t => {
- const options = {
- ...globs.normalizeGlobs({
- files: ['**/foo*'],
- ignoredByWatcher: ['**/bar*'],
- extensions: ['js'],
- providers: [],
- }),
- cwd: fixture(),
- };
-
- t.ok(globs.classifyAva5Watcher(fixture('node_modules/foo/foo.js'), options).isIgnoredByWatcher);
- t.ok(globs.classifyAva5Watcher(fixture('bar.js'), options).isIgnoredByWatcher);
- t.ok(globs.classifyAva5Watcher(fixture('foo/bar.js'), options).isIgnoredByWatcher);
- t.end();
-});
-
-test('isIgnoredByWatcher (pattern starts with directory)', t => {
- const options = {
- ...globs.normalizeGlobs({
- files: ['**/foo*'],
- ignoredByWatcher: ['foo/**/*'],
- extensions: ['js'],
- providers: [],
- }),
- cwd: fixture(),
- };
-
- t.ok(globs.classifyAva5Watcher(fixture('node_modules/foo/foo.js'), options).isIgnoredByWatcher);
- t.notOk(globs.classifyAva5Watcher(fixture('bar.js'), options).isIgnoredByWatcher);
- t.ok(globs.classifyAva5Watcher(fixture('foo/bar.js'), options).isIgnoredByWatcher);
- t.end();
-});
-
-test('isIgnoredByWatcher after provider modifications', t => {
- const options = {
- ...globs.normalizeGlobs({
- extensions: ['js'],
- providers: [{
- level: 2,
- main: {
- updateGlobs({filePatterns, ignoredByWatcherPatterns}) {
- t.ok(filePatterns.length > 0);
- t.ok(ignoredByWatcherPatterns.length > 0);
- return {
- filePatterns,
- ignoredByWatcherPatterns: ['foo.js'],
- };
- },
- },
- }],
- }),
- cwd: fixture(),
- };
-
- t.ok(globs.classifyAva5Watcher(fixture('foo.js'), options).isIgnoredByWatcher);
- t.notOk(globs.classifyAva5Watcher(fixture('bar.js'), options).isIgnoredByWatcher);
- t.end();
-});
-
test('findFiles finds non-ignored files (just .cjs)', async t => {
const fixtureDir = fixture('default-patterns');
process.chdir(fixtureDir);
diff --git a/test-tap/helper/cli.js b/test-tap/helper/cli.js
index 26be0115e..45d439cf7 100644
--- a/test-tap/helper/cli.js
+++ b/test-tap/helper/cli.js
@@ -43,7 +43,7 @@ export function execCli(args, options, cb) {
return;
}
- resolve(code);
+ resolve(null);
});
stdout = child.stdout.toArray().then(chunks => chunks.join(''));
diff --git a/test-tap/helper/report.js b/test-tap/helper/report.js
index 913fc37dc..e616e52a4 100644
--- a/test-tap/helper/report.js
+++ b/test-tap/helper/report.js
@@ -42,10 +42,12 @@ const cwdFileUrlPrefix = pathToFileURL(process.cwd());
exports.sanitizers = {
acorn: string => string.split('\n').filter(line => !/node_modules.acorn/.test(line)).join('\n'),
cwd: string => string.replaceAll(cwdFileUrlPrefix, '').replaceAll(process.cwd(), '~'),
- experimentalWarning: string => string.replace(/^\(node:\d+\) ExperimentalWarning.+\n/g, ''),
+ experimentalWarning: string => string.replaceAll(/^\(node:\d+\) ExperimentalWarning.+\n/g, ''),
lineEndings: string => string.replaceAll('\r\n', '\n'),
+ // The following are invjected by tap@18.
posix: string => string.replaceAll('\\', '/'),
- timers: string => string.replace(/timers\.js:\d+:\d+/g, 'timers.js'),
+ tapLoaders: string => string.replaceAll(/.+(Module\._compile|node_modules.pirates|require\.extensions).+\r?\n/g, ''),
+ timers: string => string.replaceAll(/timers\.js:\d+:\d+/g, 'timers.js'),
version: string => string.replaceAll(`v${pkg.version}`, 'VERSION'),
};
diff --git a/test-tap/integration/assorted.js b/test-tap/integration/assorted.js
index b2442ccb3..694b47c6f 100644
--- a/test-tap/integration/assorted.js
+++ b/test-tap/integration/assorted.js
@@ -73,7 +73,7 @@ test('should warn ava is required without the cli', t => {
});
test('tests without assertions do not fail if failWithoutAssertions option is set to false', t => {
- execCli([], {dirname: 'fixture/pkg-conf/fail-without-assertions'}, error => {
+ execCli([], {dirname: 'fixture/package-config/fail-without-assertions'}, error => {
t.error(error);
t.end();
});
diff --git a/test-tap/integration/snapshots.js b/test-tap/integration/snapshots.js
index 73e311db0..36461129b 100644
--- a/test-tap/integration/snapshots.js
+++ b/test-tap/integration/snapshots.js
@@ -2,11 +2,13 @@ import {Buffer} from 'node:buffer';
import fs from 'node:fs';
import path from 'node:path';
import {fileURLToPath} from 'node:url';
+import {gunzipSync} from 'node:zlib';
import {execa} from 'execa';
import {test} from 'tap';
import {temporaryDirectory} from 'tempy';
+import {extractCompressedSnapshot} from '../../lib/snapshot-manager.js';
import {execCli} from '../helper/cli.js';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
@@ -265,9 +267,9 @@ test('snapshots are identical on different platforms', t => {
t.ok(fs.existsSync(snapPath));
const reportContents = fs.readFileSync(reportPath);
- const snapContents = fs.readFileSync(snapPath);
+ const snapContents = gunzipSync(extractCompressedSnapshot(fs.readFileSync(snapPath)).compressed);
const expectedReportContents = fs.readFileSync(expectedReportPath);
- const expectedSnapContents = fs.readFileSync(expectedSnapPath);
+ const expectedSnapContents = gunzipSync(extractCompressedSnapshot(fs.readFileSync(expectedSnapPath)).compressed);
t.ok(reportContents.equals(expectedReportContents), 'report file contents matches snapshot');
t.ok(snapContents.equals(expectedSnapContents), 'snap file contents matches snapshot');
diff --git a/test-tap/promise.js b/test-tap/promise.js
index 1fd855445..b12433262 100644
--- a/test-tap/promise.js
+++ b/test-tap/promise.js
@@ -61,7 +61,7 @@ test('missing assertion will fail the test', t => ava(a => {
});
}).run().then(result => {
t.equal(result.passed, false);
- t.equal(result.error.assertion, 'plan');
+ t.equal(result.error.assertion, 't.plan()');
}));
test('extra assertion will fail the test', t => ava(a => {
@@ -80,7 +80,7 @@ test('extra assertion will fail the test', t => ava(a => {
});
}).run().then(result => {
t.equal(result.passed, false);
- t.equal(result.error.assertion, 'plan');
+ t.equal(result.error.assertion, 't.plan()');
}));
test('assert pass', t => {
@@ -106,9 +106,9 @@ test('reject', t => ava(a => fail().then(() => {
t.equal(result.passed, false);
t.equal(result.error.name, 'AssertionError');
t.equal(result.error.message, 'Rejected promise returned by test');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Rejected promise returned by test. Reason:');
- t.match(result.error.values[0].formatted, /.*Error.*\n.*message: 'unicorn'/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Rejected promise returned by test. Reason:');
+ t.match(result.error.formattedDetails[0].formatted, /.*Error.*\n.*message: 'unicorn'/);
}));
test('reject with non-Error', t => ava(() =>
@@ -117,7 +117,7 @@ test('reject with non-Error', t => ava(() =>
t.equal(result.passed, false);
t.equal(result.error.name, 'AssertionError');
t.equal(result.error.message, 'Rejected promise returned by test');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Rejected promise returned by test. Reason:');
- t.match(result.error.values[0].formatted, /failure/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Rejected promise returned by test. Reason:');
+ t.match(result.error.formattedDetails[0].formatted, /failure/);
}));
diff --git a/test-tap/reporters/default.edgecases.v18.log b/test-tap/reporters/default.edgecases.v18.log
index b3c1b8057..8b1c5dcdf 100644
--- a/test-tap/reporters/default.edgecases.v18.log
+++ b/test-tap/reporters/default.edgecases.v18.log
@@ -2,7 +2,7 @@
---tty-stream-chunk-separator
[35m⚠ Could not parse ast-syntax-error.cjs for line number selection[39m
- [90mSyntaxError: Unexpected token (3:11)[39m
+ SyntaxError: Unexpected token (3:11)
---tty-stream-chunk-separator
[1mUncaught exception in ast-syntax-error.cjs[22m
diff --git a/test-tap/reporters/default.edgecases.v20.log b/test-tap/reporters/default.edgecases.v20.log
index b3c1b8057..8b1c5dcdf 100644
--- a/test-tap/reporters/default.edgecases.v20.log
+++ b/test-tap/reporters/default.edgecases.v20.log
@@ -2,7 +2,7 @@
---tty-stream-chunk-separator
[35m⚠ Could not parse ast-syntax-error.cjs for line number selection[39m
- [90mSyntaxError: Unexpected token (3:11)[39m
+ SyntaxError: Unexpected token (3:11)
---tty-stream-chunk-separator
[1mUncaught exception in ast-syntax-error.cjs[22m
diff --git a/test-tap/reporters/default.edgecases.v16.log b/test-tap/reporters/default.edgecases.v21.log
similarity index 97%
rename from test-tap/reporters/default.edgecases.v16.log
rename to test-tap/reporters/default.edgecases.v21.log
index b3c1b8057..8b1c5dcdf 100644
--- a/test-tap/reporters/default.edgecases.v16.log
+++ b/test-tap/reporters/default.edgecases.v21.log
@@ -2,7 +2,7 @@
---tty-stream-chunk-separator
[35m⚠ Could not parse ast-syntax-error.cjs for line number selection[39m
- [90mSyntaxError: Unexpected token (3:11)[39m
+ SyntaxError: Unexpected token (3:11)
---tty-stream-chunk-separator
[1mUncaught exception in ast-syntax-error.cjs[22m
diff --git a/test-tap/reporters/default.failfast.v16.log b/test-tap/reporters/default.failfast.v21.log
similarity index 100%
rename from test-tap/reporters/default.failfast.v16.log
rename to test-tap/reporters/default.failfast.v21.log
diff --git a/test-tap/reporters/default.failfast2.v16.log b/test-tap/reporters/default.failfast2.v21.log
similarity index 100%
rename from test-tap/reporters/default.failfast2.v16.log
rename to test-tap/reporters/default.failfast2.v21.log
diff --git a/test-tap/reporters/default.js b/test-tap/reporters/default.js
index 62781ed23..e14d843a8 100644
--- a/test-tap/reporters/default.js
+++ b/test-tap/reporters/default.js
@@ -18,7 +18,7 @@ test(async t => {
const tty = new TTYStream({
columns: 200,
- sanitizers: [...sanitizers, report.sanitizers.cwd, report.sanitizers.experimentalWarning, report.sanitizers.posix, report.sanitizers.timers, report.sanitizers.version],
+ sanitizers: [...sanitizers, report.sanitizers.cwd, report.sanitizers.experimentalWarning, report.sanitizers.posix, report.sanitizers.tapLoaders, report.sanitizers.timers, report.sanitizers.version],
});
const reporter = new Reporter({
extensions: ['cjs'],
diff --git a/test-tap/reporters/default.only.v16.log b/test-tap/reporters/default.only.v21.log
similarity index 100%
rename from test-tap/reporters/default.only.v16.log
rename to test-tap/reporters/default.only.v21.log
diff --git a/test-tap/reporters/default.regular.v18.log b/test-tap/reporters/default.regular.v18.log
index 9b9a969d3..c65476560 100644
--- a/test-tap/reporters/default.regular.v18.log
+++ b/test-tap/reporters/default.regular.v18.log
@@ -114,6 +114,8 @@
[33mnull[39m
+---tty-stream-chunk-separator
+ [31m✘ unhandled-rejection.cjs exited with a non-zero exit code: 1[39m
---tty-stream-chunk-separator
[90m─[39m
@@ -199,7 +201,7 @@
[1mtest [90m[2m›[22m[1m[39m no longer failing[22m
- Error: Test was expected to fail, but succeeded, you should stop marking the test as failing
+ Test was expected to fail, but succeeded, you should stop marking the test as failing
@@ -289,9 +291,9 @@
[90mtraces-in-t-throws.cjs:20[39m
- [90m19:[39m test('notThrowsAsync', t => {
- [41m[1m 20: t.notThrowsAsync(() => throwError());[22m[49m
- [90m21:[39m });
+ [90m19:[39m test('notThrowsAsync', async t => {
+ [41m[1m 20: await t.notThrowsAsync(() => throwError());[22m[49m
+ [90m21:[39m });
Function threw:
@@ -300,8 +302,8 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:31[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:10[39m
@@ -309,9 +311,9 @@
[90mtraces-in-t-throws.cjs:24[39m
- [90m23:[39m test('throwsAsync', t => {
- [41m[1m 24: t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
- [90m25:[39m });
+ [90m23:[39m test('throwsAsync', async t => {
+ [41m[1m 24: await t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
+ [90m25:[39m });
Function threw synchronously. Use `t.throws()` instead:
@@ -320,18 +322,18 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4[39m
+ [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:28)[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:10[39m
[1mtraces-in-t-throws [90m[2m›[22m[1m[39m throwsAsync different error[22m
- [90mtraces-in-t-throws.cjs:27[39m
+ [90mtraces-in-t-throws.cjs:28[39m
- [90m26:[39m
- [41m[1m 27: test('throwsAsync different error', t => t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError}));[22m[49m
- [90m28:[39m
+ [90m27:[39m test('throwsAsync different error', async t => {
+ [41m[1m 28: await t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError});[22m[49m
+ [90m29:[39m });
Returned promise rejected with unexpected exception:
@@ -344,7 +346,7 @@
[35mFunction[39m [34mTypeError[39m [90m{[39m[90m}[39m
[90m› returnRejectedPromise (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:28:10[39m
[90m─[39m
diff --git a/test-tap/reporters/default.regular.v20.log b/test-tap/reporters/default.regular.v20.log
index 9b9a969d3..c65476560 100644
--- a/test-tap/reporters/default.regular.v20.log
+++ b/test-tap/reporters/default.regular.v20.log
@@ -114,6 +114,8 @@
[33mnull[39m
+---tty-stream-chunk-separator
+ [31m✘ unhandled-rejection.cjs exited with a non-zero exit code: 1[39m
---tty-stream-chunk-separator
[90m─[39m
@@ -199,7 +201,7 @@
[1mtest [90m[2m›[22m[1m[39m no longer failing[22m
- Error: Test was expected to fail, but succeeded, you should stop marking the test as failing
+ Test was expected to fail, but succeeded, you should stop marking the test as failing
@@ -289,9 +291,9 @@
[90mtraces-in-t-throws.cjs:20[39m
- [90m19:[39m test('notThrowsAsync', t => {
- [41m[1m 20: t.notThrowsAsync(() => throwError());[22m[49m
- [90m21:[39m });
+ [90m19:[39m test('notThrowsAsync', async t => {
+ [41m[1m 20: await t.notThrowsAsync(() => throwError());[22m[49m
+ [90m21:[39m });
Function threw:
@@ -300,8 +302,8 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:31[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:10[39m
@@ -309,9 +311,9 @@
[90mtraces-in-t-throws.cjs:24[39m
- [90m23:[39m test('throwsAsync', t => {
- [41m[1m 24: t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
- [90m25:[39m });
+ [90m23:[39m test('throwsAsync', async t => {
+ [41m[1m 24: await t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
+ [90m25:[39m });
Function threw synchronously. Use `t.throws()` instead:
@@ -320,18 +322,18 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4[39m
+ [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:28)[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:10[39m
[1mtraces-in-t-throws [90m[2m›[22m[1m[39m throwsAsync different error[22m
- [90mtraces-in-t-throws.cjs:27[39m
+ [90mtraces-in-t-throws.cjs:28[39m
- [90m26:[39m
- [41m[1m 27: test('throwsAsync different error', t => t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError}));[22m[49m
- [90m28:[39m
+ [90m27:[39m test('throwsAsync different error', async t => {
+ [41m[1m 28: await t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError});[22m[49m
+ [90m29:[39m });
Returned promise rejected with unexpected exception:
@@ -344,7 +346,7 @@
[35mFunction[39m [34mTypeError[39m [90m{[39m[90m}[39m
[90m› returnRejectedPromise (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:28:10[39m
[90m─[39m
diff --git a/test-tap/reporters/default.regular.v16.log b/test-tap/reporters/default.regular.v21.log
similarity index 92%
rename from test-tap/reporters/default.regular.v16.log
rename to test-tap/reporters/default.regular.v21.log
index 9b9a969d3..c65476560 100644
--- a/test-tap/reporters/default.regular.v16.log
+++ b/test-tap/reporters/default.regular.v21.log
@@ -114,6 +114,8 @@
[33mnull[39m
+---tty-stream-chunk-separator
+ [31m✘ unhandled-rejection.cjs exited with a non-zero exit code: 1[39m
---tty-stream-chunk-separator
[90m─[39m
@@ -199,7 +201,7 @@
[1mtest [90m[2m›[22m[1m[39m no longer failing[22m
- Error: Test was expected to fail, but succeeded, you should stop marking the test as failing
+ Test was expected to fail, but succeeded, you should stop marking the test as failing
@@ -289,9 +291,9 @@
[90mtraces-in-t-throws.cjs:20[39m
- [90m19:[39m test('notThrowsAsync', t => {
- [41m[1m 20: t.notThrowsAsync(() => throwError());[22m[49m
- [90m21:[39m });
+ [90m19:[39m test('notThrowsAsync', async t => {
+ [41m[1m 20: await t.notThrowsAsync(() => throwError());[22m[49m
+ [90m21:[39m });
Function threw:
@@ -300,8 +302,8 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:31[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:10[39m
@@ -309,9 +311,9 @@
[90mtraces-in-t-throws.cjs:24[39m
- [90m23:[39m test('throwsAsync', t => {
- [41m[1m 24: t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
- [90m25:[39m });
+ [90m23:[39m test('throwsAsync', async t => {
+ [41m[1m 24: await t.throwsAsync(() => throwError(), {instanceOf: TypeError});[22m[49m
+ [90m25:[39m });
Function threw synchronously. Use `t.throws()` instead:
@@ -320,18 +322,18 @@
[90m}[39m
[90m› throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)[39m
- [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4[39m
+ [90m› t.throwsAsync.instanceOf (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:28)[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:10[39m
[1mtraces-in-t-throws [90m[2m›[22m[1m[39m throwsAsync different error[22m
- [90mtraces-in-t-throws.cjs:27[39m
+ [90mtraces-in-t-throws.cjs:28[39m
- [90m26:[39m
- [41m[1m 27: test('throwsAsync different error', t => t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError}));[22m[49m
- [90m28:[39m
+ [90m27:[39m test('throwsAsync different error', async t => {
+ [41m[1m 28: await t.throwsAsync(returnRejectedPromise, {instanceOf: TypeError});[22m[49m
+ [90m29:[39m });
Returned promise rejected with unexpected exception:
@@ -344,7 +346,7 @@
[35mFunction[39m [34mTypeError[39m [90m{[39m[90m}[39m
[90m› returnRejectedPromise (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)[39m
- [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44[39m
+ [90m› test-tap/fixture/report/regular/traces-in-t-throws.cjs:28:10[39m
[90m─[39m
diff --git a/test-tap/reporters/default.timeoutcontextlogs.v16.log b/test-tap/reporters/default.timeoutcontextlogs.v21.log
similarity index 100%
rename from test-tap/reporters/default.timeoutcontextlogs.v16.log
rename to test-tap/reporters/default.timeoutcontextlogs.v21.log
diff --git a/test-tap/reporters/default.timeoutinmultiplefiles.v16.log b/test-tap/reporters/default.timeoutinmultiplefiles.v21.log
similarity index 100%
rename from test-tap/reporters/default.timeoutinmultiplefiles.v16.log
rename to test-tap/reporters/default.timeoutinmultiplefiles.v21.log
diff --git a/test-tap/reporters/default.timeoutinsinglefile.v16.log b/test-tap/reporters/default.timeoutinsinglefile.v21.log
similarity index 100%
rename from test-tap/reporters/default.timeoutinsinglefile.v16.log
rename to test-tap/reporters/default.timeoutinsinglefile.v21.log
diff --git a/test-tap/reporters/default.timeoutwithmatch.v16.log b/test-tap/reporters/default.timeoutwithmatch.v21.log
similarity index 100%
rename from test-tap/reporters/default.timeoutwithmatch.v16.log
rename to test-tap/reporters/default.timeoutwithmatch.v21.log
diff --git a/test-tap/reporters/default.watch.v16.log b/test-tap/reporters/default.watch.v21.log
similarity index 100%
rename from test-tap/reporters/default.watch.v16.log
rename to test-tap/reporters/default.watch.v21.log
diff --git a/test-tap/reporters/improper-usage-messages.js b/test-tap/reporters/improper-usage-messages.js
index 0648db207..ace0ad2bc 100644
--- a/test-tap/reporters/improper-usage-messages.js
+++ b/test-tap/reporters/improper-usage-messages.js
@@ -4,8 +4,8 @@ import improperUsageMessages from '../../lib/reporters/improper-usage-messages.j
test('results when nothing is applicable', t => {
const error = {
- assertion: 'assertion',
improperUsage: {
+ assertion: 'assertion',
name: 'VersionMismatchError',
snapPath: 'path',
snapVersion: 2,
diff --git a/test-tap/reporters/tap.edgecases.v18.log b/test-tap/reporters/tap.edgecases.v18.log
index 0b7bcf535..ae0f6cb72 100644
--- a/test-tap/reporters/tap.edgecases.v18.log
+++ b/test-tap/reporters/tap.edgecases.v18.log
@@ -1,14 +1,10 @@
TAP version 13
---tty-stream-chunk-separator
not ok 1 - ~/test-tap/fixture/report/edgecases/ast-syntax-error.cjs:3
-const fn = do {
- ^^
-
-SyntaxError: Unexpected token 'do'
---
name: SyntaxError
message: Unexpected token 'do'
- at: ''
+ at: 'const fn = do {'
...
---tty-stream-chunk-separator
not ok 2 - ast-syntax-error.cjs exited with a non-zero exit code: 1
@@ -21,7 +17,7 @@ not ok 4 - TypeError: test is not a function
message: test is not a function
at: >-
Object.
- (test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
+ (~/test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
...
---tty-stream-chunk-separator
not ok 5 - import-and-use-test-member.cjs exited with a non-zero exit code: 1
@@ -32,7 +28,7 @@ not ok 7 - Error: throws
---
name: Error
message: throws
- at: 'Object. (test-tap/fixture/report/edgecases/throws.cjs:1:7)'
+ at: 'Object. (~/test-tap/fixture/report/edgecases/throws.cjs:1:7)'
...
---tty-stream-chunk-separator
not ok 8 - throws.cjs exited with a non-zero exit code: 1
diff --git a/test-tap/reporters/tap.edgecases.v20.log b/test-tap/reporters/tap.edgecases.v20.log
index 0b7bcf535..ae0f6cb72 100644
--- a/test-tap/reporters/tap.edgecases.v20.log
+++ b/test-tap/reporters/tap.edgecases.v20.log
@@ -1,14 +1,10 @@
TAP version 13
---tty-stream-chunk-separator
not ok 1 - ~/test-tap/fixture/report/edgecases/ast-syntax-error.cjs:3
-const fn = do {
- ^^
-
-SyntaxError: Unexpected token 'do'
---
name: SyntaxError
message: Unexpected token 'do'
- at: ''
+ at: 'const fn = do {'
...
---tty-stream-chunk-separator
not ok 2 - ast-syntax-error.cjs exited with a non-zero exit code: 1
@@ -21,7 +17,7 @@ not ok 4 - TypeError: test is not a function
message: test is not a function
at: >-
Object.
- (test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
+ (~/test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
...
---tty-stream-chunk-separator
not ok 5 - import-and-use-test-member.cjs exited with a non-zero exit code: 1
@@ -32,7 +28,7 @@ not ok 7 - Error: throws
---
name: Error
message: throws
- at: 'Object. (test-tap/fixture/report/edgecases/throws.cjs:1:7)'
+ at: 'Object. (~/test-tap/fixture/report/edgecases/throws.cjs:1:7)'
...
---tty-stream-chunk-separator
not ok 8 - throws.cjs exited with a non-zero exit code: 1
diff --git a/test-tap/reporters/tap.edgecases.v16.log b/test-tap/reporters/tap.edgecases.v21.log
similarity index 82%
rename from test-tap/reporters/tap.edgecases.v16.log
rename to test-tap/reporters/tap.edgecases.v21.log
index 0b7bcf535..ae0f6cb72 100644
--- a/test-tap/reporters/tap.edgecases.v16.log
+++ b/test-tap/reporters/tap.edgecases.v21.log
@@ -1,14 +1,10 @@
TAP version 13
---tty-stream-chunk-separator
not ok 1 - ~/test-tap/fixture/report/edgecases/ast-syntax-error.cjs:3
-const fn = do {
- ^^
-
-SyntaxError: Unexpected token 'do'
---
name: SyntaxError
message: Unexpected token 'do'
- at: ''
+ at: 'const fn = do {'
...
---tty-stream-chunk-separator
not ok 2 - ast-syntax-error.cjs exited with a non-zero exit code: 1
@@ -21,7 +17,7 @@ not ok 4 - TypeError: test is not a function
message: test is not a function
at: >-
Object.
- (test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
+ (~/test-tap/fixture/report/edgecases/import-and-use-test-member.cjs:3:1)
...
---tty-stream-chunk-separator
not ok 5 - import-and-use-test-member.cjs exited with a non-zero exit code: 1
@@ -32,7 +28,7 @@ not ok 7 - Error: throws
---
name: Error
message: throws
- at: 'Object. (test-tap/fixture/report/edgecases/throws.cjs:1:7)'
+ at: 'Object. (~/test-tap/fixture/report/edgecases/throws.cjs:1:7)'
...
---tty-stream-chunk-separator
not ok 8 - throws.cjs exited with a non-zero exit code: 1
diff --git a/test-tap/reporters/tap.failfast.v18.log b/test-tap/reporters/tap.failfast.v18.log
index 5b44649f1..890fcfe73 100644
--- a/test-tap/reporters/tap.failfast.v18.log
+++ b/test-tap/reporters/tap.failfast.v18.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
diff --git a/test-tap/reporters/tap.failfast.v20.log b/test-tap/reporters/tap.failfast.v20.log
index 5b44649f1..890fcfe73 100644
--- a/test-tap/reporters/tap.failfast.v20.log
+++ b/test-tap/reporters/tap.failfast.v20.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
diff --git a/test-tap/reporters/tap.failfast.v16.log b/test-tap/reporters/tap.failfast.v21.log
similarity index 75%
rename from test-tap/reporters/tap.failfast.v16.log
rename to test-tap/reporters/tap.failfast.v21.log
index 5b44649f1..890fcfe73 100644
--- a/test-tap/reporters/tap.failfast.v16.log
+++ b/test-tap/reporters/tap.failfast.v21.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
diff --git a/test-tap/reporters/tap.failfast2.v18.log b/test-tap/reporters/tap.failfast2.v18.log
index c10c8cd9f..d3212e69e 100644
--- a/test-tap/reporters/tap.failfast2.v18.log
+++ b/test-tap/reporters/tap.failfast2.v18.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast2/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# 1 test remaining in a.cjs
diff --git a/test-tap/reporters/tap.failfast2.v20.log b/test-tap/reporters/tap.failfast2.v20.log
index c10c8cd9f..d3212e69e 100644
--- a/test-tap/reporters/tap.failfast2.v20.log
+++ b/test-tap/reporters/tap.failfast2.v20.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast2/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# 1 test remaining in a.cjs
diff --git a/test-tap/reporters/tap.failfast2.v16.log b/test-tap/reporters/tap.failfast2.v21.log
similarity index 78%
rename from test-tap/reporters/tap.failfast2.v16.log
rename to test-tap/reporters/tap.failfast2.v21.log
index c10c8cd9f..d3212e69e 100644
--- a/test-tap/reporters/tap.failfast2.v16.log
+++ b/test-tap/reporters/tap.failfast2.v21.log
@@ -3,9 +3,9 @@ TAP version 13
not ok 1 - a › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/failfast2/a.cjs:3:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# 1 test remaining in a.cjs
diff --git a/test-tap/reporters/tap.js b/test-tap/reporters/tap.js
index 47050fad8..4935d8520 100644
--- a/test-tap/reporters/tap.js
+++ b/test-tap/reporters/tap.js
@@ -18,13 +18,14 @@ test(async t => {
const tty = new TTYStream({
columns: 200,
- sanitizers: [...sanitizers, report.sanitizers.cwd, report.sanitizers.experimentalWarning, report.sanitizers.posix, report.sanitizers.timers],
+ sanitizers: [...sanitizers, report.sanitizers.cwd, report.sanitizers.experimentalWarning, report.sanitizers.posix, report.sanitizers.tapLoaders, report.sanitizers.timers],
});
const reporter = new TapReporter({
extensions: ['cjs'],
projectDir: report.projectDir(type),
reportStream: tty,
stdStream: tty,
+ sanitizeStackOutput: report.sanitizers.cwd,
});
return report[type](reporter)
.then(() => {
diff --git a/test-tap/reporters/tap.only.v16.log b/test-tap/reporters/tap.only.v21.log
similarity index 100%
rename from test-tap/reporters/tap.only.v16.log
rename to test-tap/reporters/tap.only.v21.log
diff --git a/test-tap/reporters/tap.regular.v18.log b/test-tap/reporters/tap.regular.v18.log
index 3fd8b13c2..5ff5a1375 100644
--- a/test-tap/reporters/tap.regular.v18.log
+++ b/test-tap/reporters/tap.regular.v18.log
@@ -4,7 +4,7 @@ not ok 1 - TypeError: test.serial.test is not a function
---
name: TypeError
message: test.serial.test is not a function
- at: 'Object. (test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
+ at: 'Object. (~/test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
...
---tty-stream-chunk-separator
not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
@@ -12,8 +12,8 @@ not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
not ok 3 - nested-objects › format with max depth 4
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -29,14 +29,15 @@ not ok 3 - nested-objects › format with max depth 4
+ },
+ },
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:29:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 4 - nested-objects › format like with max depth 4
---
name: AssertionError
- assertion: like
- values:
+ assertion: t.like()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -46,7 +47,8 @@ not ok 4 - nested-objects › format like with max depth 4
},
},
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:55:4'
+ message: ''
+ at: 'ExecutionContext.like (/lib/assert.js:391:15)'
...
---tty-stream-chunk-separator
# output-in-hook › before hook
@@ -68,9 +70,9 @@ ok 5 - output-in-hook › passing test
not ok 6 - output-in-hook › failing test
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/output-in-hook.cjs:34:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# output-in-hook › afterEach hook for passing test
@@ -98,20 +100,20 @@ ok 9 - test › passes
not ok 10 - test › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:9:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
ok 11 - test › known failure
---tty-stream-chunk-separator
not ok 12 - test › no longer failing
---
- name: Error
+ name: AssertionError
message: >-
Test was expected to fail, but succeeded, you should stop marking the test as
failing
- at: ''
+ at: 'Test.finish (/lib/test.js:629:28)'
...
---tty-stream-chunk-separator
not ok 13 - test › logs
@@ -119,113 +121,99 @@ not ok 13 - test › logs
# world
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:18:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
not ok 14 - test › formatted
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |-
- 'foo'
+ 'bar'
- at: 'test-tap/fixture/report/regular/test.cjs:22:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 15 - test › implementation throws non-error
---
name: AssertionError
- message: Error thrown in test
- values:
+ details:
'Error thrown in test:': 'null'
- at: ''
+ message: Error thrown in test
+ at: 'Test.run (/lib/test.js:542:25)'
...
---tty-stream-chunk-separator
not ok 16 - traces-in-t-throws › throws
---
name: AssertionError
- assertion: throws
- values:
+ assertion: t.throws()
+ details:
'Function threw unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throws.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:17)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 17 - traces-in-t-throws › notThrows
---
name: AssertionError
- assertion: notThrows
- values:
+ assertion: t.notThrows()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:20
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 18 - traces-in-t-throws › notThrowsAsync
---
name: AssertionError
- assertion: notThrowsAsync
- values:
+ assertion: t.notThrowsAsync()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 19 - traces-in-t-throws › throwsAsync
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Function threw synchronously. Use `t.throws()` instead:': |-
Error {
message: 'uh-oh',
}
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throwsAsync.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 20 - traces-in-t-throws › throwsAsync different error
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Returned promise rejected with unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
+ message: ''
at: >-
returnRejectedPromise
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44
+ (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
...
---tty-stream-chunk-separator
ok 21 - uncaught-exception › passes
@@ -236,7 +224,7 @@ not ok 22 - Error: Can’t catch me
message: Can’t catch me
at: >-
Immediate.
- (test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
+ (~/test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
...
---tty-stream-chunk-separator
not ok 23 - uncaught-exception.cjs exited with a non-zero exit code: 1
@@ -249,20 +237,22 @@ not ok 26 - Error: Can’t catch me
---
name: Error
message: Can’t catch me
- at: 'passes (test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
+ at: 'passes (~/test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
...
---tty-stream-chunk-separator
not ok 27 - unhandled-rejection
---
- message: Non-error object
+ message: Non-native error
formatted: 'null'
...
---tty-stream-chunk-separator
+not ok 28 - unhandled-rejection.cjs exited with a non-zero exit code: 1
+---tty-stream-chunk-separator
1..21
# tests 20
# pass 6
# skip 1
-# fail 20
+# fail 21
---tty-stream-chunk-separator
diff --git a/test-tap/reporters/tap.regular.v20.log b/test-tap/reporters/tap.regular.v20.log
index 3fd8b13c2..5ff5a1375 100644
--- a/test-tap/reporters/tap.regular.v20.log
+++ b/test-tap/reporters/tap.regular.v20.log
@@ -4,7 +4,7 @@ not ok 1 - TypeError: test.serial.test is not a function
---
name: TypeError
message: test.serial.test is not a function
- at: 'Object. (test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
+ at: 'Object. (~/test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
...
---tty-stream-chunk-separator
not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
@@ -12,8 +12,8 @@ not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
not ok 3 - nested-objects › format with max depth 4
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -29,14 +29,15 @@ not ok 3 - nested-objects › format with max depth 4
+ },
+ },
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:29:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 4 - nested-objects › format like with max depth 4
---
name: AssertionError
- assertion: like
- values:
+ assertion: t.like()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -46,7 +47,8 @@ not ok 4 - nested-objects › format like with max depth 4
},
},
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:55:4'
+ message: ''
+ at: 'ExecutionContext.like (/lib/assert.js:391:15)'
...
---tty-stream-chunk-separator
# output-in-hook › before hook
@@ -68,9 +70,9 @@ ok 5 - output-in-hook › passing test
not ok 6 - output-in-hook › failing test
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/output-in-hook.cjs:34:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# output-in-hook › afterEach hook for passing test
@@ -98,20 +100,20 @@ ok 9 - test › passes
not ok 10 - test › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:9:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
ok 11 - test › known failure
---tty-stream-chunk-separator
not ok 12 - test › no longer failing
---
- name: Error
+ name: AssertionError
message: >-
Test was expected to fail, but succeeded, you should stop marking the test as
failing
- at: ''
+ at: 'Test.finish (/lib/test.js:629:28)'
...
---tty-stream-chunk-separator
not ok 13 - test › logs
@@ -119,113 +121,99 @@ not ok 13 - test › logs
# world
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:18:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
not ok 14 - test › formatted
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |-
- 'foo'
+ 'bar'
- at: 'test-tap/fixture/report/regular/test.cjs:22:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 15 - test › implementation throws non-error
---
name: AssertionError
- message: Error thrown in test
- values:
+ details:
'Error thrown in test:': 'null'
- at: ''
+ message: Error thrown in test
+ at: 'Test.run (/lib/test.js:542:25)'
...
---tty-stream-chunk-separator
not ok 16 - traces-in-t-throws › throws
---
name: AssertionError
- assertion: throws
- values:
+ assertion: t.throws()
+ details:
'Function threw unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throws.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:17)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 17 - traces-in-t-throws › notThrows
---
name: AssertionError
- assertion: notThrows
- values:
+ assertion: t.notThrows()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:20
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 18 - traces-in-t-throws › notThrowsAsync
---
name: AssertionError
- assertion: notThrowsAsync
- values:
+ assertion: t.notThrowsAsync()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 19 - traces-in-t-throws › throwsAsync
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Function threw synchronously. Use `t.throws()` instead:': |-
Error {
message: 'uh-oh',
}
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throwsAsync.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 20 - traces-in-t-throws › throwsAsync different error
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Returned promise rejected with unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
+ message: ''
at: >-
returnRejectedPromise
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44
+ (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
...
---tty-stream-chunk-separator
ok 21 - uncaught-exception › passes
@@ -236,7 +224,7 @@ not ok 22 - Error: Can’t catch me
message: Can’t catch me
at: >-
Immediate.
- (test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
+ (~/test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
...
---tty-stream-chunk-separator
not ok 23 - uncaught-exception.cjs exited with a non-zero exit code: 1
@@ -249,20 +237,22 @@ not ok 26 - Error: Can’t catch me
---
name: Error
message: Can’t catch me
- at: 'passes (test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
+ at: 'passes (~/test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
...
---tty-stream-chunk-separator
not ok 27 - unhandled-rejection
---
- message: Non-error object
+ message: Non-native error
formatted: 'null'
...
---tty-stream-chunk-separator
+not ok 28 - unhandled-rejection.cjs exited with a non-zero exit code: 1
+---tty-stream-chunk-separator
1..21
# tests 20
# pass 6
# skip 1
-# fail 20
+# fail 21
---tty-stream-chunk-separator
diff --git a/test-tap/reporters/tap.regular.v16.log b/test-tap/reporters/tap.regular.v21.log
similarity index 71%
rename from test-tap/reporters/tap.regular.v16.log
rename to test-tap/reporters/tap.regular.v21.log
index 3fd8b13c2..5ff5a1375 100644
--- a/test-tap/reporters/tap.regular.v16.log
+++ b/test-tap/reporters/tap.regular.v21.log
@@ -4,7 +4,7 @@ not ok 1 - TypeError: test.serial.test is not a function
---
name: TypeError
message: test.serial.test is not a function
- at: 'Object. (test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
+ at: 'Object. (~/test-tap/fixture/report/regular/bad-test-chain.cjs:3:13)'
...
---tty-stream-chunk-separator
not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
@@ -12,8 +12,8 @@ not ok 2 - bad-test-chain.cjs exited with a non-zero exit code: 1
not ok 3 - nested-objects › format with max depth 4
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -29,14 +29,15 @@ not ok 3 - nested-objects › format with max depth 4
+ },
+ },
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:29:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 4 - nested-objects › format like with max depth 4
---
name: AssertionError
- assertion: like
- values:
+ assertion: t.like()
+ details:
'Difference (- actual, + expected):': |2-
{
a: {
@@ -46,7 +47,8 @@ not ok 4 - nested-objects › format like with max depth 4
},
},
}
- at: 'test-tap/fixture/report/regular/nested-objects.cjs:55:4'
+ message: ''
+ at: 'ExecutionContext.like (/lib/assert.js:391:15)'
...
---tty-stream-chunk-separator
# output-in-hook › before hook
@@ -68,9 +70,9 @@ ok 5 - output-in-hook › passing test
not ok 6 - output-in-hook › failing test
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/output-in-hook.cjs:34:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
# output-in-hook › afterEach hook for passing test
@@ -98,20 +100,20 @@ ok 9 - test › passes
not ok 10 - test › fails
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:9:22'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
ok 11 - test › known failure
---tty-stream-chunk-separator
not ok 12 - test › no longer failing
---
- name: Error
+ name: AssertionError
message: >-
Test was expected to fail, but succeeded, you should stop marking the test as
failing
- at: ''
+ at: 'Test.finish (/lib/test.js:629:28)'
...
---tty-stream-chunk-separator
not ok 13 - test › logs
@@ -119,113 +121,99 @@ not ok 13 - test › logs
# world
---
name: AssertionError
+ assertion: t.fail()
message: Test failed via `t.fail()`
- assertion: fail
- at: 'test-tap/fixture/report/regular/test.cjs:18:4'
+ at: 'ExecutionContext.fail (/lib/assert.js:287:15)'
...
---tty-stream-chunk-separator
not ok 14 - test › formatted
---
name: AssertionError
- assertion: deepEqual
- values:
+ assertion: t.deepEqual()
+ details:
'Difference (- actual, + expected):': |-
- 'foo'
+ 'bar'
- at: 'test-tap/fixture/report/regular/test.cjs:22:4'
+ message: ''
+ at: 'ExecutionContext.deepEqual (/lib/assert.js:339:15)'
...
---tty-stream-chunk-separator
not ok 15 - test › implementation throws non-error
---
name: AssertionError
- message: Error thrown in test
- values:
+ details:
'Error thrown in test:': 'null'
- at: ''
+ message: Error thrown in test
+ at: 'Test.run (/lib/test.js:542:25)'
...
---tty-stream-chunk-separator
not ok 16 - traces-in-t-throws › throws
---
name: AssertionError
- assertion: throws
- values:
+ assertion: t.throws()
+ details:
'Function threw unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throws.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:17)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:12:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 17 - traces-in-t-throws › notThrows
---
name: AssertionError
- assertion: notThrows
- values:
+ assertion: t.notThrows()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:20
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:16:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 18 - traces-in-t-throws › notThrowsAsync
---
name: AssertionError
- assertion: notThrowsAsync
- values:
+ assertion: t.notThrowsAsync()
+ details:
'Function threw:': |-
Error {
message: 'uh-oh',
}
- at: |-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:25
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:20:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 19 - traces-in-t-throws › throwsAsync
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Function threw synchronously. Use `t.throws()` instead:': |-
Error {
message: 'uh-oh',
}
- at: >-
- throwError (test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)
-
- t.throwsAsync.instanceOf
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:22)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:24:4
+ message: ''
+ at: 'throwError (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:4:8)'
...
---tty-stream-chunk-separator
not ok 20 - traces-in-t-throws › throwsAsync different error
---
name: AssertionError
- assertion: throwsAsync
- values:
+ assertion: t.throwsAsync()
+ details:
'Returned promise rejected with unexpected exception:': |-
Error {
message: 'uh-oh',
}
'Expected instance of:': 'Function TypeError {}'
+ message: ''
at: >-
returnRejectedPromise
- (test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
-
- test-tap/fixture/report/regular/traces-in-t-throws.cjs:27:44
+ (~/test-tap/fixture/report/regular/traces-in-t-throws.cjs:8:24)
...
---tty-stream-chunk-separator
ok 21 - uncaught-exception › passes
@@ -236,7 +224,7 @@ not ok 22 - Error: Can’t catch me
message: Can’t catch me
at: >-
Immediate.
- (test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
+ (~/test-tap/fixture/report/regular/uncaught-exception.cjs:5:9)
...
---tty-stream-chunk-separator
not ok 23 - uncaught-exception.cjs exited with a non-zero exit code: 1
@@ -249,20 +237,22 @@ not ok 26 - Error: Can’t catch me
---
name: Error
message: Can’t catch me
- at: 'passes (test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
+ at: 'passes (~/test-tap/fixture/report/regular/unhandled-rejection.cjs:4:17)'
...
---tty-stream-chunk-separator
not ok 27 - unhandled-rejection
---
- message: Non-error object
+ message: Non-native error
formatted: 'null'
...
---tty-stream-chunk-separator
+not ok 28 - unhandled-rejection.cjs exited with a non-zero exit code: 1
+---tty-stream-chunk-separator
1..21
# tests 20
# pass 6
# skip 1
-# fail 20
+# fail 21
---tty-stream-chunk-separator
diff --git a/test-tap/serialize-error.js b/test-tap/serialize-error.js
deleted file mode 100644
index f293988db..000000000
--- a/test-tap/serialize-error.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import {test} from 'tap';
-
-import * as avaAssert from '../lib/assert.js';
-import serializeError from '../lib/serialize-error.js';
-import {set as setOptions} from '../lib/worker/options.cjs';
-
-setOptions({});
-
-const serialize = error => serializeError('Test', true, error, import.meta.url);
-
-test('serialize standard props', t => {
- const error = new Error('Hello');
- const serializedError = serialize(error);
-
- t.equal(Object.keys(serializedError).length, 9);
- t.equal(serializedError.avaAssertionError, false);
- t.equal(serializedError.nonErrorObject, false);
- t.same(serializedError.object, {});
- t.equal(serializedError.name, 'Error');
- t.equal(serializedError.stack, error.stack);
- t.equal(serializedError.message, 'Hello');
- t.equal(serializedError.summary, 'Error: Hello');
- t.equal(serializedError.shouldBeautifyStack, true);
- t.equal(serializedError.source.isWithinProject, true);
- t.equal(serializedError.source.isDependency, false);
- t.equal(typeof serializedError.source.file, 'string');
- t.equal(typeof serializedError.source.line, 'number');
- t.end();
-});
-
-test('additional error properties are preserved', t => {
- const serializedError = serialize(Object.assign(new Error(), {foo: 'bar'}));
- t.same(serializedError.object, {foo: 'bar'});
- t.end();
-});
-
-test('source file is an absolute path', t => {
- const error = new Error('Hello');
- const serializedError = serialize(error);
-
- t.equal(serializedError.source.file, import.meta.url);
- t.end();
-});
-
-test('sets avaAssertionError to true if indeed an assertion error', t => {
- const error = new avaAssert.AssertionError({});
- const serializedError = serialize(error);
- t.ok(serializedError.avaAssertionError);
- t.end();
-});
-
-test('includes values of assertion errors', t => {
- const error = new avaAssert.AssertionError({
- assertion: 'is',
- values: [{label: 'actual:', formatted: '1'}, {label: 'expected:', formatted: 'a'}],
- });
-
- const serializedError = serialize(error);
- t.equal(serializedError.values, error.values);
- t.end();
-});
-
-test('remove non-string error properties', t => {
- const error = {
- name: [42],
- stack: /re/g,
- };
- const serializedError = serialize(error);
- t.equal(serializedError.name, undefined);
- t.equal(serializedError.stack, undefined);
- t.end();
-});
-
-test('creates multiline summaries for syntax errors', t => {
- const error = new SyntaxError();
- Object.defineProperty(error, 'stack', {
- value: 'Hello\nThere\nSyntaxError here\nIgnore me',
- });
- const serializedError = serialize(error);
- t.equal(serializedError.name, 'SyntaxError');
- t.equal(serializedError.summary, 'Hello\nThere\nSyntaxError here');
- t.end();
-});
diff --git a/test-tap/test.js b/test-tap/test.js
index bfa8f43e7..37c94d85e 100644
--- a/test-tap/test.js
+++ b/test-tap/test.js
@@ -105,9 +105,9 @@ test('wrap non-assertion errors', t => {
t.equal(result.passed, false);
t.equal(result.error.message, 'Error thrown in test');
t.equal(result.error.name, 'AssertionError');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Error thrown in test:');
- t.match(result.error.values[0].formatted, /Error/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Error thrown in test:');
+ t.match(result.error.formattedDetails[0].formatted, /Error/);
});
});
@@ -212,9 +212,9 @@ test('fails with the first assertError', t => ava(a => {
}).run().then(result => {
t.equal(result.passed, false);
t.equal(result.error.name, 'AssertionError');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Difference (- actual, + expected):');
- t.match(result.error.values[0].formatted, /- 1\n\+ 2/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Difference (- actual, + expected):');
+ t.match(result.error.formattedDetails[0].formatted, /- 1\n\+ 2/);
}));
test('failing pending assertion causes test to fail, not promise rejection', t => ava(a => a.throwsAsync(Promise.resolve()).then(() => {
@@ -230,9 +230,9 @@ test('fails with thrown falsy value', t => ava(() => {
t.equal(result.passed, false);
t.equal(result.error.message, 'Error thrown in test');
t.equal(result.error.name, 'AssertionError');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Error thrown in test:');
- t.match(result.error.values[0].formatted, /0/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Error thrown in test:');
+ t.match(result.error.formattedDetails[0].formatted, /0/);
}));
test('fails with thrown non-error object', t => {
@@ -243,9 +243,9 @@ test('fails with thrown non-error object', t => {
t.equal(result.passed, false);
t.equal(result.error.message, 'Error thrown in test');
t.equal(result.error.name, 'AssertionError');
- t.equal(result.error.values.length, 1);
- t.equal(result.error.values[0].label, 'Error thrown in test:');
- t.match(result.error.values[0].formatted, /.*{.*\n.*foo: 'bar'/);
+ t.equal(result.error.formattedDetails.length, 1);
+ t.equal(result.error.formattedDetails[0].label, 'Error thrown in test:');
+ t.match(result.error.formattedDetails[0].formatted, /.*{.*\n.*foo: 'bar'/);
});
});
@@ -361,7 +361,10 @@ test('fails if test ends while there are pending assertions', t => ava(a => {
}));
test('fails if async test ends while there are pending assertions', t => ava(a => {
- a.throwsAsync(Promise.reject(new Error()));
+ a.throwsAsync(async () => {
+ await delay(100);
+ throw new Error();
+ });
return Promise.resolve();
}).run().then(result => {
t.equal(result.passed, false);
@@ -369,33 +372,6 @@ test('fails if async test ends while there are pending assertions', t => ava(a =
t.match(result.error.message, /Test finished, but an assertion is still pending/);
}));
-// This behavior is incorrect, but feedback cannot be provided to the user due to
-// https://github.com/avajs/ava/issues/1330
-test('no crash when adding assertions after the test has ended', t => {
- t.plan(3);
-
- ava(a => {
- a.pass();
- setImmediate(() => {
- t.doesNotThrow(() => a.pass());
- });
- }).run();
-
- ava(a => {
- a.pass();
- setImmediate(() => {
- t.doesNotThrow(() => a.fail());
- });
- }).run();
-
- ava(a => {
- a.pass();
- setImmediate(() => {
- t.doesNotThrow(() => a.notThrowsAsync(Promise.resolve()));
- });
- }).run();
-});
-
test('contextRef', t => {
new Test({
contextRef: {
diff --git a/test-tap/tsconfig.json b/test-tap/tsconfig.json
new file mode 100644
index 000000000..16f918bf7
--- /dev/null
+++ b/test-tap/tsconfig.json
@@ -0,0 +1,2 @@
+// Empty config file so that TAP doesn't choke on ours.
+{}
diff --git a/test-types/import-in-cts/assertions-as-type-guards.cts b/test-types/import-in-cts/assertions-as-type-guards.cts
index 3ada9756a..fd9a8615c 100644
--- a/test-types/import-in-cts/assertions-as-type-guards.cts
+++ b/test-types/import-in-cts/assertions-as-type-guards.cts
@@ -4,6 +4,13 @@ import {expectType} from 'tsd';
type Expected = {foo: 'bar'};
const expected: Expected = {foo: 'bar'};
+test('assert', t => {
+ const actual = expected as Expected | undefined;
+ if (t.assert(actual)) {
+ expectType(actual);
+ }
+});
+
test('deepEqual', t => {
const actual: unknown = {};
if (t.deepEqual(actual, expected)) {
@@ -32,9 +39,24 @@ test('false', t => {
}
});
+test('falsy', t => {
+ type Actual = Expected | undefined | false | 0 | '' | 0n;
+ const actual = undefined as Actual;
+ if (t.falsy(actual)) {
+ expectType>(actual);
+ }
+});
+
test('true', t => {
const actual: unknown = false;
if (t.true(actual)) {
expectType(actual);
}
});
+
+test('truthy', t => {
+ const actual = expected as Expected | undefined;
+ if (t.truthy(actual)) {
+ expectType(actual);
+ }
+});
diff --git a/test-types/import-in-cts/throws.cts b/test-types/import-in-cts/throws.cts
index 6bae10904..3cc8623cc 100644
--- a/test-types/import-in-cts/throws.cts
+++ b/test-types/import-in-cts/throws.cts
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-empty-function */
import test from '../../entrypoints/main.cjs';
-import {expectType} from 'tsd';
+import {expectError, expectType} from 'tsd';
class CustomError extends Error {
foo: string;
@@ -13,29 +13,37 @@ class CustomError extends Error {
test('throws', t => {
const error1 = t.throws(() => {});
- expectType(error1);
- const error2: CustomError | undefined = t.throws(() => {});
- expectType(error2);
- expectType(t.throws(() => {}));
+ expectType(error1);
+ const error2: CustomError = t.throws(() => {});
+ expectType(error2);
+ expectType(t.throws(() => {}));
const error3 = t.throws(() => {}, {instanceOf: CustomError});
- expectType(error3);
+ expectType(error3);
const error4 = t.throws(() => {}, {is: new CustomError()});
- expectType(error4);
+ expectType(error4);
const error5 = t.throws(() => {}, {instanceOf: CustomError, is: new CustomError()});
- expectType(error5);
+ expectType(error5);
+ const error6 = t.throws(() => { throw 'foo' }, {any: true});
+ expectType(error6);
+ // @ts-expect-error TS2769
+ expectError(t.throws(() => { throw 'foo' }, {instanceOf: String, is: 'foo'}));
});
test('throwsAsync', async t => {
const error1 = await t.throwsAsync(async () => {});
- expectType(error1);
- expectType(await t.throwsAsync(async () => {}));
+ expectType(error1);
+ expectType(await t.throwsAsync(async () => {}));
const error2 = await t.throwsAsync(Promise.reject());
- expectType(error2);
- expectType(await t.throwsAsync(Promise.reject()));
+ expectType(error2);
+ expectType(await t.throwsAsync(Promise.reject()));
const error3 = await t.throwsAsync(async () => {}, {instanceOf: CustomError});
- expectType(error3);
+ expectType(error3);
const error4 = await t.throwsAsync(async () => {}, {is: new CustomError()});
- expectType(error4);
+ expectType(error4);
const error5 = await t.throwsAsync(async () => {}, {instanceOf: CustomError, is: new CustomError()});
- expectType(error5);
+ expectType(error5);
+ const error6 = await t.throwsAsync(async () => { throw 'foo' }, {any: true});
+ expectType(error6);
+ // @ts-expect-error TS2769
+ expectError(t.throwsAsync(async () => { throw 'foo' }, {instanceOf: String, is: 'foo'}));
});
diff --git a/test-types/module/assertions-as-type-guards.ts b/test-types/module/assertions-as-type-guards.ts
index 36763b98f..15b718d79 100644
--- a/test-types/module/assertions-as-type-guards.ts
+++ b/test-types/module/assertions-as-type-guards.ts
@@ -5,6 +5,13 @@ import test from '../../entrypoints/main.mjs';
type Expected = {foo: 'bar'};
const expected: Expected = {foo: 'bar'};
+test('assert', t => {
+ const actual = expected as Expected | undefined;
+ if (t.assert(actual)) {
+ expectType(actual);
+ }
+});
+
test('deepEqual', t => {
const actual: unknown = {};
if (t.deepEqual(actual, expected)) {
@@ -33,9 +40,24 @@ test('false', t => {
}
});
+test('falsy', t => {
+ type Actual = Expected | undefined | false | 0 | '' | 0n;
+ const actual = undefined as Actual;
+ if (t.falsy(actual)) {
+ expectType>(actual);
+ }
+});
+
test('true', t => {
const actual: unknown = false;
if (t.true(actual)) {
expectType(actual);
}
});
+
+test('truthy', t => {
+ const actual = expected as Expected | undefined;
+ if (t.truthy(actual)) {
+ expectType(actual);
+ }
+});
diff --git a/test-types/module/snapshot.ts b/test-types/module/snapshot.ts
index 08b1b155a..0e678d51c 100644
--- a/test-types/module/snapshot.ts
+++ b/test-types/module/snapshot.ts
@@ -6,7 +6,7 @@ test('snapshot', t => {
t.snapshot({foo: 'bar'});
t.snapshot(null, 'a snapshot with a message');
// @ts-expect-error TS2345
- expectError(t.snapshot('hello world', null)); // eslint-disable-line @typescript-eslint/no-confusing-void-expression
+ expectError(t.snapshot('hello world', null));
});
test('snapshot.skip', t => {
diff --git a/test-types/module/throws.ts b/test-types/module/throws.ts
index 76c1ce47f..dd3954e46 100644
--- a/test-types/module/throws.ts
+++ b/test-types/module/throws.ts
@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-empty-function */
-import {expectType} from 'tsd';
+import {expectError, expectType} from 'tsd';
import test from '../../entrypoints/main.mjs';
@@ -14,29 +14,45 @@ class CustomError extends Error {
test('throws', t => {
const error1 = t.throws(() => {});
- expectType(error1);
- const error2: CustomError | undefined = t.throws(() => {});
- expectType(error2);
- expectType(t.throws(() => {}));
+ expectType(error1);
+ const error2: CustomError = t.throws(() => {});
+ expectType(error2);
+ expectType(t.throws(() => {}));
const error3 = t.throws(() => {}, {instanceOf: CustomError});
- expectType(error3);
+ expectType(error3);
const error4 = t.throws(() => {}, {is: new CustomError()});
- expectType(error4);
+ expectType(error4);
const error5 = t.throws(() => {}, {instanceOf: CustomError, is: new CustomError()});
- expectType(error5);
+ expectType(error5);
+ const error6 = t.throws(() => {
+ throw 'foo'; // eslint-disable-line @typescript-eslint/no-throw-literal
+ }, {any: true});
+ expectType(error6);
+ expectError(t.throws(() => {
+ throw 'foo'; // eslint-disable-line @typescript-eslint/no-throw-literal
+ // @ts-expect-error TS2769
+ }, {instanceOf: String, is: 'foo'}));
});
test('throwsAsync', async t => {
const error1 = await t.throwsAsync(async () => {});
- expectType(error1);
- expectType(await t.throwsAsync(async () => {}));
+ expectType(error1);
+ expectType(await t.throwsAsync(async () => {}));
const error2 = await t.throwsAsync(Promise.reject());
- expectType(error2);
- expectType(await t.throwsAsync(Promise.reject()));
+ expectType(error2);
+ expectType(await t.throwsAsync(Promise.reject()));
const error3 = await t.throwsAsync(async () => {}, {instanceOf: CustomError});
- expectType(error3);
+ expectType(error3);
const error4 = await t.throwsAsync(async () => {}, {is: new CustomError()});
- expectType(error4);
+ expectType(error4);
const error5 = await t.throwsAsync(async () => {}, {instanceOf: CustomError, is: new CustomError()});
- expectType(error5);
+ expectType(error5);
+ const error6 = await t.throwsAsync(async () => {
+ throw 'foo'; // eslint-disable-line @typescript-eslint/no-throw-literal
+ }, {any: true});
+ expectType(error6);
+ // @ts-expect-error TS2769
+ expectError(t.throwsAsync(async () => {
+ throw 'foo'; // eslint-disable-line @typescript-eslint/no-throw-literal
+ }, {instanceOf: String, is: 'foo'}));
});
diff --git a/test/builtin-nodejs-assert/test.js b/test/builtin-nodejs-assert/test.js
index 3419d4951..10aaf81f3 100644
--- a/test/builtin-nodejs-assert/test.js
+++ b/test/builtin-nodejs-assert/test.js
@@ -15,12 +15,12 @@ test('node assertion failures are reported to the console when running in a term
const result = await t.throwsAsync(fixture(['assert-failure.js'], options));
const error = result.stats.getError(result.stats.failed[0]);
- t.true(error.values.every(value => value.label.includes('Assertion failed')));
+ t.true(error.formattedDetails.every(value => value.label.includes('Assertion failed')));
});
test('node assertion failures are reported to the console when not running in a terminal', async t => {
const result = await t.throwsAsync(fixture(['assert-failure.js']));
const error = result.stats.getError(result.stats.failed[0]);
- t.true(error.values.every(value => value.label.includes('Assertion failed')));
+ t.true(error.formattedDetails.every(value => value.label.includes('Assertion failed')));
});
diff --git a/test/completion-handlers/fixtures/exit0.js b/test/completion-handlers/fixtures/exit0.js
new file mode 100644
index 000000000..c4884b9ff
--- /dev/null
+++ b/test/completion-handlers/fixtures/exit0.js
@@ -0,0 +1,7 @@
+import test, { registerCompletionHandler } from 'ava'
+
+registerCompletionHandler(() => {
+ process.exit(0)
+})
+
+test('pass', t => t.pass())
diff --git a/test/completion-handlers/fixtures/one.js b/test/completion-handlers/fixtures/one.js
new file mode 100644
index 000000000..229e8035c
--- /dev/null
+++ b/test/completion-handlers/fixtures/one.js
@@ -0,0 +1,9 @@
+import test, { registerCompletionHandler } from 'ava'
+
+registerCompletionHandler(() => {
+ console.error('one')
+})
+
+test('pass', t => {
+ t.pass()
+})
diff --git a/test/completion-handlers/fixtures/package.json b/test/completion-handlers/fixtures/package.json
new file mode 100644
index 000000000..54f672450
--- /dev/null
+++ b/test/completion-handlers/fixtures/package.json
@@ -0,0 +1,8 @@
+{
+ "type": "module",
+ "ava": {
+ "files": [
+ "*.js"
+ ]
+ }
+}
diff --git a/test/completion-handlers/fixtures/two.js b/test/completion-handlers/fixtures/two.js
new file mode 100644
index 000000000..a688a1d2e
--- /dev/null
+++ b/test/completion-handlers/fixtures/two.js
@@ -0,0 +1,10 @@
+import test, { registerCompletionHandler } from 'ava'
+
+registerCompletionHandler(() => {
+ console.error('one')
+})
+registerCompletionHandler(() => {
+ console.error('two')
+})
+
+test('pass', t => t.pass())
diff --git a/test/completion-handlers/test.js b/test/completion-handlers/test.js
new file mode 100644
index 000000000..04dd28d57
--- /dev/null
+++ b/test/completion-handlers/test.js
@@ -0,0 +1,17 @@
+import test from '@ava/test';
+
+import {cleanOutput, fixture} from '../helpers/exec.js';
+
+test('runs a single completion handler', async t => {
+ const result = await fixture(['one.js']);
+ t.is(cleanOutput(result.stderr), 'one');
+});
+
+test('runs multiple completion handlers in registration order', async t => {
+ const result = await fixture(['two.js']);
+ t.deepEqual(cleanOutput(result.stderr).split('\n'), ['one', 'two']);
+});
+
+test('completion handlers may exit the process', async t => {
+ await t.notThrowsAsync(fixture(['exit0.js']));
+});
diff --git a/test/external-assertions/snapshots/test.js.md b/test/external-assertions/snapshots/test.js.md
index a6981b7e0..d189b4fbc 100644
--- a/test/external-assertions/snapshots/test.js.md
+++ b/test/external-assertions/snapshots/test.js.md
@@ -4,7 +4,7 @@ The actual snapshot is saved in `test.js.snap`.
Generated by [AVA](https://avajs.dev).
-## node assertion
+## node assertion (node.js v^18)
> Snapshot 1
@@ -15,39 +15,227 @@ Generated by [AVA](https://avajs.dev).
␊
test␊
␊
- assert-failure.js:6␊
+ Assertion failed: ␊
+ ␊
+ false == true␊
+ ␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
+ ␊
+ ␊
+ test async␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ false == true␊
+ ␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## expect error (node.js v^18)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
+ ␊
+ ␊
+ test async␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## node assertion (node.js v^20 < 20.11)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ false == true␊
+ ␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
␊
- 5: test('test', () => {␊
- 6: assert(false); ␊
- 7: }); ␊
+ ␊
+ test async␊
␊
Assertion failed: ␊
␊
false == true␊
␊
- › file://assert-failure.js:6:2␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## expect error (node.js v^20 < 20.11)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
␊
␊
␊
test async␊
␊
- assert-failure.js:10␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## node assertion (node.js v^20.11)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ The expression evaluated to a falsy value:␊
+ ␊
+ assert(false)␊
␊
- 9: test('test async', async () => { ␊
- 10: assert(await Promise.resolve(false));␊
- 11: }); ␊
+ AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:␊
+ ␊
+ assert(false)␊
+ ␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
+ ␊
+ ␊
+ test async␊
␊
Assertion failed: ␊
␊
false == true␊
␊
- › file://assert-failure.js:10:2␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
␊
─␊
␊
2 tests failed`
-## expect error
+## expect error (node.js v^20.11)
> Snapshot 1
@@ -58,11 +246,28 @@ Generated by [AVA](https://avajs.dev).
␊
test␊
␊
- expect-failure.js:5␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
␊
- 4: test('test', () => { ␊
- 5: expect(false).toBeTruthy();␊
- 6: }); ␊
+ ␊
+ test async␊
␊
Assertion failed: ␊
␊
@@ -70,18 +275,96 @@ Generated by [AVA](https://avajs.dev).
␊
Received: false␊
␊
- › Received: false␊
- › file://expect-failure.js:5:16␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## node assertion (node.js v^21)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ The expression evaluated to a falsy value:␊
+ ␊
+ assert(false)␊
+ ␊
+ AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:␊
+ ␊
+ assert(false)␊
+ ␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
␊
␊
␊
test async␊
␊
- expect-failure.js:9␊
+ Assertion failed: ␊
+ ␊
+ false == true␊
+ ␊
+ AssertionError [ERR_ASSERTION]: false == true␊
+ at ---␊
+ at ---␊
+ ␊
+ ─␊
+ ␊
+ 2 tests failed`
+
+## expect error (node.js v^21)
+
+> Snapshot 1
+
+ `␊
+ ✘ [fail]: test Assertion failed␊
+ ✘ [fail]: test async Assertion failed␊
+ ─␊
+ ␊
+ test␊
+ ␊
+ Assertion failed: ␊
+ ␊
+ expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ ␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ at ---␊
+ ␊
+ ␊
␊
- 8: test('test async', async () => { ␊
- 9: expect(await Promise.resolve(false)).toBeTruthy();␊
- 10: }); ␊
+ test async␊
␊
Assertion failed: ␊
␊
@@ -89,8 +372,11 @@ Generated by [AVA](https://avajs.dev).
␊
Received: false␊
␊
- › Received: false␊
- › file://expect-failure.js:9:39␊
+ Error: expect(received).toBeTruthy()␊
+ ␊
+ Received: false␊
+ at ---␊
+ at ---␊
␊
─␊
␊
diff --git a/test/external-assertions/snapshots/test.js.snap b/test/external-assertions/snapshots/test.js.snap
index e9ee42e2a..ceb534c96 100644
Binary files a/test/external-assertions/snapshots/test.js.snap and b/test/external-assertions/snapshots/test.js.snap differ
diff --git a/test/external-assertions/test.js b/test/external-assertions/test.js
index 65b2ddfc7..924a1f3bc 100644
--- a/test/external-assertions/test.js
+++ b/test/external-assertions/test.js
@@ -1,13 +1,37 @@
+import process from 'node:process';
+
import test from '@ava/test';
import {fixture} from '../helpers/exec.js';
-test('node assertion ', async t => {
- const result = await t.throwsAsync(fixture(['assert-failure.js']));
- t.snapshot(result.stdout.replace(/\r/g, '').replace(/\/{3}/g, '//'));
-});
+const snapshotStdout = (t, stdout) => {
+ const normalized = stdout
+ .replaceAll('\r', '')
+ .replaceAll(/\/{3}/g, '//')
+ .replaceAll(/(\b)at.*\n/g, '$1at ---\n');
+
+ t.snapshot(normalized);
+};
+
+for (const [label, selector] of Object.entries({
+ '^18': /^18\./,
+ '^20 < 20.11': /^20\.(\d\.|10\.)/,
+ '^20.11': /^20\.(1[1-9]\.|[2-9]\d\.)/,
+ '^21': /^21\./,
+})) {
+ // Tests need to be declared for all versions, so that snapshots can be
+ // updated by running `npx test-ava -u test/external-assertions/test.js` for
+ // each supported version. However only the tests for the current version
+ // can run, so skip the others.
+ const declare = selector.test(process.versions.node) ? test : test.skip;
+
+ declare(`node assertion (node.js v${label})`, async t => {
+ const result = await t.throwsAsync(fixture(['assert-failure.js']));
+ snapshotStdout(t, result.stdout);
+ });
-test('expect error ', async t => {
- const result = await t.throwsAsync(fixture(['expect-failure.js']));
- t.snapshot(result.stdout.replace(/\r/g, '').replace(/\/{3}/g, '//'));
-});
+ declare(`expect error (node.js v${label})`, async t => {
+ const result = await t.throwsAsync(fixture(['expect-failure.js']));
+ snapshotStdout(t, result.stdout);
+ });
+}
diff --git a/test/helpers/exec.js b/test/helpers/exec.js
index 76fb27725..735733b0d 100644
--- a/test/helpers/exec.js
+++ b/test/helpers/exec.js
@@ -33,7 +33,7 @@ const compareStatObjects = (a, b) => {
};
export const cwd = (...paths) => path.join(path.dirname(fileURLToPath(test.meta.file)), 'fixtures', ...paths);
-export const cleanOutput = string => string.replace(/^\W+/, '').replace(/\W+\n+$/g, '').trim();
+export const cleanOutput = string => string.replace(/^\W+/, '').replaceAll(/\W+\n+$/g, '').trim();
const NO_FORWARD_PREFIX = Buffer.from('🤗', 'utf8');
diff --git a/test/internal-events/fixtures/.gitignore b/test/internal-events/fixtures/.gitignore
new file mode 100644
index 000000000..1fe1da7f5
--- /dev/null
+++ b/test/internal-events/fixtures/.gitignore
@@ -0,0 +1 @@
+internal-events.json
diff --git a/test/internal-events/fixtures/ava.config.js b/test/internal-events/fixtures/ava.config.js
new file mode 100644
index 000000000..034b7d501
--- /dev/null
+++ b/test/internal-events/fixtures/ava.config.js
@@ -0,0 +1,19 @@
+import fs from 'node:fs/promises';
+
+const internalEvents = [];
+
+export default {
+ files: [
+ 'test.js',
+ ],
+ nonSemVerExperiments: {
+ observeRunsFromConfig: true,
+ },
+ async observeRun(run) {
+ for await (const event of run.events) {
+ internalEvents.push(event);
+ }
+
+ await fs.writeFile('internal-events.json', JSON.stringify(internalEvents));
+ },
+};
diff --git a/test/internal-events/fixtures/package.json b/test/internal-events/fixtures/package.json
new file mode 100644
index 000000000..bedb411a9
--- /dev/null
+++ b/test/internal-events/fixtures/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/test/internal-events/fixtures/test.js b/test/internal-events/fixtures/test.js
new file mode 100644
index 000000000..0fd3dbd7e
--- /dev/null
+++ b/test/internal-events/fixtures/test.js
@@ -0,0 +1,5 @@
+import test from 'ava';
+
+test('placeholder', t => {
+ t.pass();
+});
diff --git a/test/internal-events/test.js b/test/internal-events/test.js
new file mode 100644
index 000000000..dbfb6e56c
--- /dev/null
+++ b/test/internal-events/test.js
@@ -0,0 +1,28 @@
+import fs from 'node:fs/promises';
+import {fileURLToPath} from 'node:url';
+
+import test from '@ava/test';
+
+import {fixture} from '../helpers/exec.js';
+
+test('internal events are emitted', async t => {
+ await fixture();
+
+ const result = JSON.parse(await fs.readFile(fileURLToPath(new URL('fixtures/internal-events.json', import.meta.url))));
+
+ t.like(result[0], {
+ type: 'starting',
+ testFile: fileURLToPath(new URL('fixtures/test.js', import.meta.url)),
+ });
+
+ const testPassedEvent = result.find(event => event.type === 'test-passed');
+ t.like(testPassedEvent, {
+ type: 'test-passed',
+ title: 'placeholder',
+ testFile: fileURLToPath(new URL('fixtures/test.js', import.meta.url)),
+ });
+
+ t.like(result.at(-1), {
+ type: 'end',
+ });
+});
diff --git a/test/multiple-implementations/test.js b/test/multiple-implementations/test.js
index 4cefc477b..1bbeeecbe 100644
--- a/test/multiple-implementations/test.js
+++ b/test/multiple-implementations/test.js
@@ -4,10 +4,10 @@ import {fixture} from '../helpers/exec.js';
test('test()', async t => {
const result = await t.throwsAsync(fixture(['test.js']));
- t.regex(result.stdout, /AVA 4 no longer supports multiple implementations/);
+ t.regex(result.stdout, /Expected an implementation/);
});
test('t.try()', async t => {
const result = await t.throwsAsync(fixture(['try.js']));
- t.regex(result.stdout, /AVA 4 no longer supports t\.try\(\) with multiple implementations/);
+ t.regex(result.stdout, /Expected an implementation/);
});
diff --git a/test/snapshot-order/fixtures/randomness/.gitignore b/test/snapshot-order/fixtures/randomness/.gitignore
new file mode 100644
index 000000000..29b0ff8e8
--- /dev/null
+++ b/test/snapshot-order/fixtures/randomness/.gitignore
@@ -0,0 +1 @@
+test.js.snap
diff --git a/test/snapshot-order/fixtures/randomness/test.js.snap b/test/snapshot-order/fixtures/randomness/test.js.snap
deleted file mode 100644
index 17aeedced..000000000
Binary files a/test/snapshot-order/fixtures/randomness/test.js.snap and /dev/null differ
diff --git a/test/snapshot-order/randomness.js b/test/snapshot-order/randomness.js
index 297f09be1..a2666109c 100644
--- a/test/snapshot-order/randomness.js
+++ b/test/snapshot-order/randomness.js
@@ -1,8 +1,10 @@
import fs from 'node:fs';
import path from 'node:path';
+import {gunzipSync} from 'node:zlib';
import test from '@ava/test';
+import {extractCompressedSnapshot} from '../../lib/snapshot-manager.js';
import {cwd, fixture} from '../helpers/exec.js';
import getSnapshotIds from './helpers/get-snapshot-ids.js';
@@ -23,8 +25,9 @@ test('deterministic and sorted over a large, random test case', async t => {
// Assert snapshot is unchanged
const snapshot = fs.readFileSync(snapshotPath);
+ const {compressed} = extractCompressedSnapshot(snapshot, snapshotPath);
- t.snapshot(snapshot, 'resulting snapshot in binary encoding');
+ t.snapshot(gunzipSync(compressed), 'resulting snapshot in binary encoding');
// Assert report is sorted
const report = fs.readFileSync(reportPath);
diff --git a/test/snapshot-order/snapshots/randomness.js.md b/test/snapshot-order/snapshots/randomness.js.md
index 3d401bdf1..4b84d1723 100644
--- a/test/snapshot-order/snapshots/randomness.js.md
+++ b/test/snapshot-order/snapshots/randomness.js.md
@@ -9,14 +9,26 @@ Generated by [AVA](https://avajs.dev).
> resulting snapshot in binary encoding
Buffer @Uint8Array [
- 41564120 536e6170 73686f74 2076330a 03008ba7 6ff7a1a2 251e5fa1 afbf3fa8
- fdf7ca69 3e5b2af2 b0734c95 46791417 ae201f8b 08000000 00000003 5b989694
- 939f9c5d dcba28b5 24b32427 b542ca49 41572125 353927b1 2855a138 3f1748e4
- 25161467 e4971467 c259cd0b 5352124b 12c39819 d8194080 91954190 9123332f
- 25b5c24a c160111e 49c3d49c c4a4d49c dc8cc462 854485dc d4e2e2c4 f4547c1a
- 8c201a8a 12738af3 15507541 5d2cef88 eee2dcfc 22acce6e c4e76c13 9879aace
- 38434021 330f687f 4951a586 265260e0 73be29c4 f9a9f9a5 25a945f8 149a4115
- 66e6e5e1 57680e51 980d3651 21313d31 330fee72 5790cb33 8b93138b 52887179
- 133e7b2c 305d1e8e a2901316 a506385d 54e40274 10aed868 5a88cf50 23bcb2c6
- 00d6e9f1 35b80200 00
+ a166626c 6f636b73 85a26574 69746c65 781a4220 2d206465 636c6172 6520736f
+ 6d652073 6e617073 686f7473 69736e61 7073686f 747383a1 64646174 61560300
+ 07000000 00000105 00110108 696e6465 783a2030 a2646461 74615603 00070000
+ 00000001 05001101 08696e64 65783a20 31656c61 62656c6d 68617320 61206d65
+ 73736167 65a26464 61746156 03000700 00000000 01050011 0108696e 6465783a
+ 2032656c 6162656c 72616c73 6f206861 73206120 6d657373 616765a2 65746974
+ 6c65781f 41202d20 6465636c 61726520 736f6d65 206d6f72 6520736e 61707368
+ 6f747369 736e6170 73686f74 7381a164 64617461 56030007 00000000 00010500
+ 11010869 6e646578 3a2034a2 65746974 6c657825 43202d20 6465636c 61726520
+ 736f6d65 20736e61 7073686f 74732069 6e206120 74727928 2969736e 61707368
+ 6f747383 a2646461 74615603 00070000 00000001 05001101 08696e64 65783a20
+ 35656c61 62656c65 6f757465 72a26464 61746156 03000700 00000000 01050011
+ 0108696e 6465783a 2036656c 6162656c 65696e6e 6572a264 64617461 56030007
+ 00000000 00010500 11010869 6e646578 3a203765 6c616265 6c6b6f75 74657220
+ 61676169 6ea26574 69746c65 78254520 2d206469 73636172 6420736f 6d652073
+ 6e617073 686f7473 20696e20 61207472 79282969 736e6170 73686f74 7382a264
+ 64617461 56030007 00000000 00010500 11010869 6e646578 3a203865 6c616265
+ 6c656f75 746572a2 64646174 61570300 07000000 00000105 00110109 696e6465
+ 783a2031 30656c61 62656c6b 6f757465 72206167 61696ea2 65746974 6c657244
+ 202d206d 6f726520 736e6170 73686f74 7369736e 61707368 6f747382 a1646461
+ 74615703 00070000 00000001 05001101 09696e64 65783a20 3132a164 64617461
+ 57030007 00000000 00010500 11010969 6e646578 3a203133
]
diff --git a/test/snapshot-order/snapshots/randomness.js.snap b/test/snapshot-order/snapshots/randomness.js.snap
index efe9b14ee..d5ee319b3 100644
Binary files a/test/snapshot-order/snapshots/randomness.js.snap and b/test/snapshot-order/snapshots/randomness.js.snap differ
diff --git a/test/snapshot-workflow/helpers/macros.js b/test/snapshot-workflow/helpers/macros.js
index 835316231..8f369a66c 100644
--- a/test/snapshot-workflow/helpers/macros.js
+++ b/test/snapshot-workflow/helpers/macros.js
@@ -1,9 +1,11 @@
import {promises as fs} from 'node:fs';
import path from 'node:path';
+import {gunzipSync} from 'node:zlib';
import concordance from 'concordance';
+import {extractCompressedSnapshot} from '../../../lib/snapshot-manager.js';
import {fixture} from '../../helpers/exec.js';
import {withTemporaryFixture} from '../../helpers/with-temporary-fixture.js';
@@ -19,7 +21,7 @@ function cleanStringDiff(before, after) {
let diff = concordance.diff(before, after, {theme});
// Remove all newline control characters, or they'll be duplicated in the
// snapshot report
- diff = diff.replace(/␊/g, '');
+ diff = diff.replaceAll('␊', '');
return diff;
}
@@ -63,9 +65,12 @@ export async function beforeAndAfter(t, {
}
async function readSnapshots(cwd) {
+ const snapPath = path.join(cwd, 'test.js.snap');
const [snapshot, report] = await Promise.all([
- fs.readFile(path.join(cwd, 'test.js.snap')),
+ fs.readFile(snapPath),
fs.readFile(path.join(cwd, 'test.js.md'), 'utf8'),
]);
- return {snapshot, report};
+
+ const {version, compressed} = extractCompressedSnapshot(snapshot, snapPath);
+ return {snapshot: {version, decompressed: gunzipSync(compressed)}, report};
}
diff --git a/test/test-timeouts/snapshots/test.js.md b/test/test-timeouts/snapshots/test.js.md
index 5c7c42ab1..cf3a2ab68 100644
--- a/test/test-timeouts/snapshots/test.js.md
+++ b/test/test-timeouts/snapshots/test.js.md
@@ -10,7 +10,7 @@ Generated by [AVA](https://avajs.dev).
'The assertion message must be a string'
-> formatted values
+> formatted details
[
{
diff --git a/test/test-timeouts/snapshots/test.js.snap b/test/test-timeouts/snapshots/test.js.snap
index ccf0fc9c6..3f85c7ca5 100644
Binary files a/test/test-timeouts/snapshots/test.js.snap and b/test/test-timeouts/snapshots/test.js.snap differ
diff --git a/test/test-timeouts/test.js b/test/test-timeouts/test.js
index e63a876e6..4f529e950 100644
--- a/test/test-timeouts/test.js
+++ b/test/test-timeouts/test.js
@@ -12,5 +12,5 @@ test('timeout messages must be strings', async t => {
const result = await t.throwsAsync(fixture(['invalid-message.js']));
const error = result.stats.getError(result.stats.failed[0]);
t.snapshot(error.message, 'error message');
- t.snapshot(error.values, 'formatted values');
+ t.snapshot(error.formattedDetails, 'formatted details');
});
diff --git a/test/watch-mode/helpers/watch.js b/test/watch-mode/helpers/watch.js
index ab553cdae..32c00ced1 100644
--- a/test/watch-mode/helpers/watch.js
+++ b/test/watch-mode/helpers/watch.js
@@ -80,23 +80,19 @@ export const withFixture = fixture => async (t, task) => {
const assertIdle = async next => {
assertingIdle = true;
- // TODO: When testing using AVA 6, enable for better managed timeouts.
- // t.timeout(10_000);
+ t.timeout(30_000);
const promise = Promise.all([delay(5000, null, {ref: false}), next?.()]).finally(() => {
if (idlePromise === promise) {
idlePromise = new Promise(() => {});
assertingIdle = false;
- // TODO: When testing using AVA 6, enable for better managed timeouts.
- // t.timeout.clear();
+ t.timeout.clear();
if (failedIdleAssertion) {
failedIdleAssertion = false;
t.fail('Watcher performed a test run while it should have been idle');
}
}
-
- return {};
- });
+ }).then(() => ({}));
idlePromise = promise;
await promise;
@@ -104,12 +100,32 @@ export const withFixture = fixture => async (t, task) => {
let state = {};
let pendingState;
+ let process;
+
+ t.teardown(async () => {
+ if (process?.connected) {
+ process.send('abort-watcher');
+ }
+
+ // Sending the `abort-watcher` message should suffice, but on Linux
+ // the recursive watch handle does not close properly. See
+ // but there seem to be
+ // other isues.
+ setTimeout(() => {
+ process.kill('SIGKILL');
+ }, 1000).unref();
+
+ try {
+ await process;
+ } catch {}
+ });
const results = run(args, options);
try {
let nextResult = results.next();
- while (true) { // eslint-disable-line no-constant-condition
+ while (!isDone) { // eslint-disable-line no-unmodified-loop-condition
const item = await Promise.race([nextResult, idlePromise, donePromise]); // eslint-disable-line no-await-in-loop
+ process ??= item.value?.process;
if (item.value) {
failedIdleAssertion ||= assertingIdle;
@@ -124,8 +140,8 @@ export const withFixture = fixture => async (t, task) => {
}
}
- if (item.done || isDone) {
- item.value?.process.send('abort-watcher');
+ if (item.done) {
+ await pendingState; // eslint-disable-line no-await-in-loop
break;
}
}
diff --git a/types/assertions.d.cts b/types/assertions.d.cts
index 7be1760d6..939c1e076 100644
--- a/types/assertions.d.cts
+++ b/types/assertions.d.cts
@@ -1,12 +1,15 @@
export type ErrorConstructor = {
- new (...args: any[]): ErrorType;
readonly prototype: ErrorType;
-}
+ new (...args: any[]): ErrorType;
+};
export type ThrownError = ErrorType extends ErrorConstructor ? ErrorType['prototype'] : ErrorType;
/** Specify one or more expectations the thrown error must satisfy. */
export type ThrowsExpectation = {
+ /** If true, the thrown error is not required to be a native error. */
+ any?: false;
+
/** The thrown error must have a code that equals the given string or number. */
code?: string | number;
@@ -23,10 +26,23 @@ export type ThrowsExpectation = {
name?: string;
};
+export type ThrowsAnyExpectation = Omit, 'any' | 'instanceOf' | 'is'> & {
+ /** If true, the thrown error is not required to be a native error. */
+ any: true;
+
+ /** The thrown error must be an instance of this constructor. */
+ instanceOf?: new (...args: any[]) => any;
+
+ /** The thrown error must be strictly equal to this value. */
+ is?: any;
+};
+
export type Assertions = {
/**
* Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning a boolean
* indicating whether the assertion passed.
+ *
+ * Note: An `else` clause using this as a type guard will be subtly incorrect for `string` and `number` types and will not give `0` or `''` as a potential value in an `else` clause.
*/
assert: AssertAssertion;
@@ -121,6 +137,8 @@ export type Assertions = {
/**
* Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning a boolean
* indicating whether the assertion passed.
+ *
+ * Note: An `else` clause using this as a type guard will be subtly incorrect for `string` and `number` types and will not give `0` or `''` as a potential value in an `else` clause.
*/
truthy: TruthyAssertion;
@@ -128,12 +146,18 @@ export type Assertions = {
unorderedEqual: UnorderedEqualAssertion;
};
+type FalsyValue = false | 0 | 0n | '' | null | undefined; // eslint-disable-line @typescript-eslint/ban-types
+type Falsy = T extends Exclude ? (T extends number | string | bigint ? T & FalsyValue : never) : T;
+
export type AssertAssertion = {
/**
- * Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning a boolean
- * indicating whether the assertion passed.
+ * Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning `true` if the
+ * assertion passed and throwing otherwise.
+ *
+ * Note: An `else` clause using this as a type guard will be subtly incorrect for `string` and `number` types and will
+ * not give `0` or `''` as a potential value in an `else` clause.
*/
- (actual: any, message?: string): boolean;
+ (actual: T, message?: string): actual is T extends Falsy ? never : T;
/** Skip this assertion. */
skip(actual: any, message?: string): void;
@@ -142,19 +166,19 @@ export type AssertAssertion = {
export type DeepEqualAssertion = {
/**
* Assert that `actual` is [deeply equal](https://github.com/concordancejs/concordance#comparison-details) to
- * `expected`, returning a boolean indicating whether the assertion passed.
+ * `expected`, returning `true` if the assertion passed and throwing otherwise.
*/
(actual: Actual, expected: Expected, message?: string): actual is Expected;
/**
* Assert that `actual` is [deeply equal](https://github.com/concordancejs/concordance#comparison-details) to
- * `expected`, returning a boolean indicating whether the assertion passed.
+ * `expected`, returning `true` if the assertion passed and throwing otherwise.
*/
(actual: Actual, expected: Expected, message?: string): expected is Actual;
/**
* Assert that `actual` is [deeply equal](https://github.com/concordancejs/concordance#comparison-details) to
- * `expected`, returning a boolean indicating whether the assertion passed.
+ * `expected`, returning `true` if the assertion passed and throwing otherwise.
*/
(actual: Actual, expected: Expected, message?: string): boolean;
@@ -164,7 +188,7 @@ export type DeepEqualAssertion = {
export type LikeAssertion = {
/**
- * Assert that `value` is like `selector`, returning a boolean indicating whether the assertion passed.
+ * Assert that `value` is like `selector`, returning `true` if the assertion passed and throwing otherwise.
*/
>(value: any, selector: Expected, message?: string): value is Expected;
@@ -173,8 +197,8 @@ export type LikeAssertion = {
};
export type FailAssertion = {
- /** Fail the test, always returning `false`. */
- (message?: string): boolean;
+ /** Fail the test. */
+ (message?: string): never;
/** Skip this assertion. */
skip(message?: string): void;
@@ -182,7 +206,7 @@ export type FailAssertion = {
export type FalseAssertion = {
/**
- * Assert that `actual` is strictly false, returning a boolean indicating whether the assertion passed.
+ * Assert that `actual` is strictly false, returning `true` if the assertion passed and throwing otherwise.
*/
(actual: any, message?: string): actual is false;
@@ -192,10 +216,10 @@ export type FalseAssertion = {
export type FalsyAssertion = {
/**
- * Assert that `actual` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy), returning a boolean
- * indicating whether the assertion passed.
+ * Assert that `actual` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy), returning `true` if the
+ * assertion passed and throwing otherwise.
*/
- (actual: any, message?: string): boolean;
+ (actual: T, message?: string): actual is Falsy;
/** Skip this assertion. */
skip(actual: any, message?: string): void;
@@ -205,7 +229,7 @@ export type IsAssertion = {
/**
* Assert that `actual` is [the same
* value](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) as `expected`,
- * returning a boolean indicating whether the assertion passed.
+ * returning `true` if the assertion passed and throwing otherwise.
*/
(actual: Actual, expected: Expected, message?: string): actual is Expected;
@@ -217,9 +241,9 @@ export type NotAssertion = {
/**
* Assert that `actual` is not [the same
* value](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) as `expected`,
- * returning a boolean indicating whether the assertion passed.
+ * returning `true` if the assertion passed and throwing otherwise.
*/
- (actual: Actual, expected: Expected, message?: string): boolean;
+ (actual: Actual, expected: Expected, message?: string): true;
/** Skip this assertion. */
skip(actual: any, expected: any, message?: string): void;
@@ -228,9 +252,9 @@ export type NotAssertion = {
export type NotDeepEqualAssertion = {
/**
* Assert that `actual` is not [deeply equal](https://github.com/concordancejs/concordance#comparison-details) to
- * `expected`, returning a boolean indicating whether the assertion passed.
+ * `expected`, returning `true` if the assertion passed and throwing otherwise.
*/
- (actual: Actual, expected: Expected, message?: string): boolean;
+ (actual: Actual, expected: Expected, message?: string): true;
/** Skip this assertion. */
skip(actual: any, expected: any, message?: string): void;
@@ -238,29 +262,40 @@ export type NotDeepEqualAssertion = {
export type NotRegexAssertion = {
/**
- * Assert that `string` does not match the regular expression, returning a boolean indicating whether the assertion
- * passed.
+ * Assert that `string` does not match the regular expression, returning `true` if the assertion passed and throwing
+ * otherwise.
*/
- (string: string, regex: RegExp, message?: string): boolean;
+ (string: string, regex: RegExp, message?: string): true;
/** Skip this assertion. */
skip(string: string, regex: RegExp, message?: string): void;
};
export type NotThrowsAssertion = {
- /** Assert that the function does not throw. */
- (fn: () => any, message?: string): void;
+ /**
+ * Assert that the function does not throw, returning `true` if the assertion passed and throwing otherwise.
+ */
+ (fn: () => any, message?: string): true;
/** Skip this assertion. */
skip(fn: () => any, message?: string): void;
};
export type NotThrowsAsyncAssertion = {
- /** Assert that the async function does not throw. You must await the result. */
- (fn: () => PromiseLike, message?: string): Promise;
+ /**
+ * Assert that the async function does not throw, returning a promise for `true` if the assertion passesd and a
+ * rejected promise otherwise.
+ *
+ * You must await the result.
+ */
+ (fn: () => PromiseLike, message?: string): Promise;
- /** Assert that the promise does not reject. You must await the result. */
- (promise: PromiseLike, message?: string): Promise;
+ /** Assert that the promise does not reject, returning a promise for `true` if the assertion passesd and a
+ * rejected promise otherwise.
+ *
+ * You must await the result.
+ */
+ (promise: PromiseLike, message?: string): Promise;
/** Skip this assertion. */
skip(nonThrower: any, message?: string): void;
@@ -268,7 +303,7 @@ export type NotThrowsAsyncAssertion = {
export type PassAssertion = {
/** Count a passing assertion, always returning `true`. */
- (message?: string): boolean;
+ (message?: string): true;
/** Skip this assertion. */
skip(message?: string): void;
@@ -276,9 +311,10 @@ export type PassAssertion = {
export type RegexAssertion = {
/**
- * Assert that `string` matches the regular expression, returning a boolean indicating whether the assertion passed.
+ * Assert that `string` matches the regular expression, returning `true` if the assertion passed and throwing
+ * otherwise.
*/
- (string: string, regex: RegExp, message?: string): boolean;
+ (string: string, regex: RegExp, message?: string): true;
/** Skip this assertion. */
skip(string: string, regex: RegExp, message?: string): void;
@@ -289,8 +325,10 @@ export type SnapshotAssertion = {
* Assert that `expected` is [deeply equal](https://github.com/concordancejs/concordance#comparison-details) to a
* previously recorded [snapshot](https://github.com/concordancejs/concordance#serialization-details), or if
* necessary record a new snapshot.
+ *
+ * Returns `true` if the assertion passed and throws otherwise.
*/
- (expected: any, message?: string): void;
+ (expected: any, message?: string): true;
/** Skip this assertion. */
skip(expected: any, message?: string): void;
@@ -298,10 +336,16 @@ export type SnapshotAssertion = {
export type ThrowsAssertion = {
/**
- * Assert that the function throws a native error. If so, returns the error value.
- * The error must satisfy all expectations. Returns undefined when the assertion fails.
+ * Assert that the function throws a native error. The error must satisfy all expectations. Returns the error value if
+ * the assertion passes and throws otherwise.
*/
- (fn: () => any, expectations?: ThrowsExpectation, message?: string): ThrownError | undefined;
+ (fn: () => any, expectations?: ThrowsExpectation, message?: string): ThrownError;
+
+ /**
+ * Assert that the function throws. The error must satisfy all expectations. Returns the error value if the assertion
+ * passes and throws otherwise.
+ */
+ (fn: () => any, expectations?: ThrowsAnyExpectation, message?: string): unknown;
/** Skip this assertion. */
skip(fn: () => any, expectations?: any, message?: string): void;
@@ -309,17 +353,28 @@ export type ThrowsAssertion = {
export type ThrowsAsyncAssertion = {
/**
- * Assert that the async function throws a native error. If so, returns the error
- * value. Returns undefined when the assertion fails. You must await the result. The error must satisfy all expectations.
+ * Assert that the async function throws a native error. You must await the result. The error must satisfy all
+ * expectations. Returns a promise for the error value if the assertion passes and a rejected promise otherwise.
*/
- (fn: () => PromiseLike, expectations?: ThrowsExpectation, message?: string): Promise | undefined>;
+ (fn: () => PromiseLike, expectations?: ThrowsExpectation, message?: string): Promise>;
/**
- * Assert that the promise rejects with a native error. If so, returns the
- * rejection reason. Returns undefined when the assertion fails. You must await the result. The error must satisfy all
- * expectations.
+ * Assert that the promise rejects with a native error. You must await the result. The error must satisfy all
+ * expectations. Returns a promise for the error value if the assertion passes and a rejected promise otherwise.
*/
- (promise: PromiseLike, expectations?: ThrowsExpectation, message?: string): Promise | undefined>;
+ (promise: PromiseLike, expectations?: ThrowsExpectation, message?: string): Promise>;
+
+ /**
+ * Assert that the async function throws. You must await the result. The error must satisfy all expectations. Returns
+ * a promise for the error value if the assertion passes and a rejected promise otherwise.
+ */
+ (fn: () => PromiseLike, expectations?: ThrowsAnyExpectation, message?: string): Promise;
+
+ /**
+ * Assert that the promise rejects. You must await the result. The error must satisfy all expectations. Returns a
+ * promise for the error value if the assertion passes and a rejected promise otherwise.
+ */
+ (promise: PromiseLike, expectations?: ThrowsAnyExpectation, message?: string): Promise;
/** Skip this assertion. */
skip(thrower: any, expectations?: any, message?: string): void;
@@ -327,7 +382,7 @@ export type ThrowsAsyncAssertion = {
export type TrueAssertion = {
/**
- * Assert that `actual` is strictly true, returning a boolean indicating whether the assertion passed.
+ * Assert that `actual` is strictly true, returning `true` if the assertion passed and throwing otherwise.
*/
(actual: any, message?: string): actual is true;
@@ -337,10 +392,13 @@ export type TrueAssertion = {
export type TruthyAssertion = {
/**
- * Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning a boolean
- * indicating whether the assertion passed.
+ * Assert that `actual` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), returning `true` if the
+ * assertion passed and throwing otherwise.
+ *
+ * Note: An `else` clause using this as a type guard will be subtly incorrect for `string` and `number` types and will
+ * not give `0` or `''` as a potential value in an `else` clause.
*/
- (actual: any, message?: string): boolean;
+ (actual: T, message?: string): actual is T extends Falsy ? never : T;
/** Skip this assertion. */
skip(actual: any, message?: string): void;
diff --git a/types/shared-worker.d.cts b/types/shared-worker.d.cts
index bcb57d99c..3e1bd5a65 100644
--- a/types/shared-worker.d.cts
+++ b/types/shared-worker.d.cts
@@ -1,5 +1,3 @@
-import type {URL} from 'node:url';
-
export namespace SharedWorker {
export type ProtocolIdentifier = 'ava-4';
diff --git a/types/state-change-events.d.cts b/types/state-change-events.d.cts
new file mode 100644
index 000000000..fe37f517c
--- /dev/null
+++ b/types/state-change-events.d.cts
@@ -0,0 +1,143 @@
+type ErrorSource = {
+ isDependency: boolean;
+ isWithinProject: boolean;
+ file: string;
+ line: number;
+};
+
+type SerializedErrorBase = {
+ message: string;
+ name: string;
+ originalError: unknown;
+ stack: string;
+};
+
+type AggregateSerializedError = SerializedErrorBase & {
+ type: 'aggregate';
+ errors: SerializedError[];
+};
+
+type NativeSerializedError = SerializedErrorBase & {
+ type: 'native';
+ source: ErrorSource | undefined;
+};
+
+type AvaSerializedError = SerializedErrorBase & {
+ type: 'ava';
+ assertion: string;
+ improperUsage: unknown | undefined;
+ formattedCause: unknown | undefined;
+ formattedDetails: unknown | unknown[];
+ source: ErrorSource | undefined;
+};
+
+type SerializedError = AggregateSerializedError | NativeSerializedError | AvaSerializedError;
+
+export type StateChangeEvent = {
+ type: 'starting';
+ testFile: string;
+} | {
+ type: 'stats';
+ stats: {
+ byFile: Map;
+ declaredTests: number;
+ failedHooks: number;
+ failedTests: number;
+ failedWorkers: number;
+ files: number;
+ parallelRuns: {
+ currentIndex: number;
+ totalRuns: number;
+ } | undefined;
+ finishedWorkers: number;
+ internalErrors: number;
+ remainingTests: number;
+ passedKnownFailingTests: number;
+ passedTests: number;
+ selectedTests: number;
+ sharedWorkerErrors: number;
+ skippedTests: number;
+ timedOutTests: number;
+ timeouts: number;
+ todoTests: number;
+ uncaughtExceptions: number;
+ unhandledRejections: number;
+ };
+} | {
+ type: 'declared-test';
+ title: string;
+ knownFailing: boolean;
+ todo: boolean;
+ testFile: string;
+} | {
+ type: 'selected-test';
+ title: string;
+ knownFailing: boolean;
+ skip: boolean;
+ todo: boolean;
+ testFile: string;
+} | {
+ type: 'test-register-log-reference';
+ title: string;
+ logs: string[];
+ testFile: string;
+} | {
+ type: 'test-passed';
+ title: string;
+ duration: number;
+ knownFailing: boolean;
+ logs: string[];
+ testFile: string;
+} | {
+ type: 'test-failed';
+ title: string;
+ err: SerializedError;
+ duration: number;
+ knownFailing: boolean;
+ logs: string[];
+ testFile: string;
+} | {
+ type: 'worker-finished';
+ forcedExit: boolean;
+ testFile: string;
+} | {
+ type: 'worker-failed';
+ nonZeroExitCode?: boolean;
+ signal?: string;
+ err?: SerializedError;
+} | {
+ type: 'touched-files';
+ files: {
+ changedFiles: string[];
+ temporaryFiles: string[];
+ };
+} | {
+ type: 'worker-stdout';
+ chunk: Uint8Array;
+ testFile: string;
+} | {
+ type: 'worker-stderr';
+ chunk: Uint8Array;
+ testFile: string;
+} | {
+ type: 'timeout';
+ period: number;
+ pendingTests: Map>;
+}
+| {
+ type: 'end';
+};
diff --git a/types/test-fn.d.cts b/types/test-fn.d.cts
index e64e4ffee..77c6be31d 100644
--- a/types/test-fn.d.cts
+++ b/types/test-fn.d.cts
@@ -48,7 +48,7 @@ export type TimeoutFn = {
/** Clear the timeout and restore the default behavior. */
clear(): void;
-}
+};
/** Declare a function to be run after the test has ended. */
export type TeardownFn = (fn: (() => Promise) | (() => void)) => void;