From a45711e81c834d5ea6a7a2b440e697254bf20f90 Mon Sep 17 00:00:00 2001
From: Alexander Khoroshikh
<32790736+AlexandrHoroshih@users.noreply.github.com>
Date: Tue, 19 Dec 2023 13:19:32 +0700
Subject: [PATCH] Reflect 9.0 (#80)
* Enforce 23.1.0
* Remove /ssr and delete /scope
* Fix build and commits
* Separate public types from sources
* Use dist version of the package
* Make public types work
* Make build work
* Fix type-tests resolving
* Enforce prior build for code tests
* Use vitest
* Remove jest
* remove jest
* Add attw and publint into ci
* Fix package issues
* Fix type paths
* Fix resolved path
* Rewrite types for reflect method
* Rewrite createReflect types
* Bump react
* Bump react types
* Add another type level edge case
* Restore some of the variant types
* Restore variant types
* generalize bind usage
* Make `list` types work
* Add JSDoc notation
* Use public typings in tests directly
* Simplify source typings
* Add basic type test for createReflect
* Improve types
* Enable skipLibCheck in type tests
There are a lot of strange stuff in @types/react :shrug:
* Improve type inference for callbacks
* Add tests for scoped callbacks
* Support arbitary callback feature
* Add tests for callback in mapItem
* Support scopeBind callbacks in mapItem
* Document fork api auto-compatibility
* Document fork api auto compatibility in `list`
* Fix docs view
* Add types for fromTag helper
* Fix example
* implement fromTag
* Remove unsued expect error directive
* Document `fromTag`
* Create types for useUnit config
* Fix weird gitignore
* Implement `useUnitConfig` field
* Do not generate d.mts
* Improve wording
* fix json formatting
* Add more type-tests
* Revert to use React.FC type again
For some reason, on a real test in Next.js project, the (props: ...) => React.ReactNode type is not compatible in some cases
* Add note in the code about type inference
---
.config/tsconfig.base.json | 5 +-
.github/workflows/test.yml | 5 +-
.gitignore | 8 +-
babel.config.json | 2 +-
build.mjs | 13 +-
dist-test/no-ssr/create-reflect.test.tsx | 220 --
dist-test/no-ssr/reflect.test.tsx | 233 --
dist-test/ssr/create-reflect.test.tsx | 128 -
dist-test/ssr/reflect.test.tsx | 261 --
docs/pages/docs/_meta.json | 3 +-
docs/pages/docs/fromTag.mdx | 57 +
docs/pages/docs/list.mdx | 32 +-
docs/pages/docs/reflect.mdx | 38 +-
docs/pages/docs/variant.mdx | 4 +-
jest.config.js | 187 --
package.json | 91 +-
pnpm-lock.yaml | 3792 +++++++++-------------
public-types/reflect.d.ts | 227 ++
rollup.config.cjs | 45 +-
src/core/fromTag.ts | 8 +
src/core/index.ts | 1 +
src/core/list.ts | 69 +-
src/core/reflect.ts | 73 +-
src/core/types.ts | 36 +-
src/core/variant.ts | 26 +-
src/index.ts | 3 +
src/no-ssr/create-reflect.test.tsx | 22 +-
src/no-ssr/list.test.tsx | 86 +-
src/no-ssr/reflect.test.tsx | 213 +-
src/no-ssr/variant.test.tsx | 48 +-
src/scope.ts | 4 +
src/ssr.ts | 4 -
src/ssr/create-reflect.test.tsx | 5 +-
src/ssr/list.test.tsx | 11 +-
src/ssr/reflect.test.tsx | 5 +-
src/ssr/variant.test.tsx | 13 +-
tsconfig.json | 9 +-
type-tests/tsconfig.json | 6 +-
type-tests/types-create-reflect.tsx | 26 +
type-tests/types-from-tag.ts | 91 +
type-tests/types-list.tsx | 28 +-
type-tests/types-reflect.tsx | 90 +-
type-tests/types-variant.tsx | 70 +-
validate_dist.mjs | 16 +
vitest.config.mts | 28 +
45 files changed, 2793 insertions(+), 3549 deletions(-)
delete mode 100644 dist-test/no-ssr/create-reflect.test.tsx
delete mode 100644 dist-test/no-ssr/reflect.test.tsx
delete mode 100644 dist-test/ssr/create-reflect.test.tsx
delete mode 100644 dist-test/ssr/reflect.test.tsx
create mode 100644 docs/pages/docs/fromTag.mdx
delete mode 100644 jest.config.js
create mode 100644 public-types/reflect.d.ts
create mode 100644 src/core/fromTag.ts
delete mode 100644 src/ssr.ts
create mode 100644 type-tests/types-create-reflect.tsx
create mode 100644 type-tests/types-from-tag.ts
create mode 100644 validate_dist.mjs
create mode 100644 vitest.config.mts
diff --git a/.config/tsconfig.base.json b/.config/tsconfig.base.json
index 09c04ab..8b7fba9 100644
--- a/.config/tsconfig.base.json
+++ b/.config/tsconfig.base.json
@@ -1,6 +1,6 @@
{
"compilerOptions": {
- "target": "es6",
+ "target": "ESNext",
"module": "es2015",
"strict": true,
"lib": ["dom", "dom.iterable", "esnext"],
@@ -8,8 +8,9 @@
"allowSyntheticDefaultImports": true,
"jsx": "react",
"esModuleInterop": true,
+ "types": ["vitest/globals"],
"strictNullChecks": true
},
"include": ["../src"],
- "exclude": ["../typings", "../**/*.test.tsx"]
+ "exclude": ["../typings"]
}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 581745d..cc62822 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -24,10 +24,9 @@ jobs:
- name: Build
run: pnpm build
- - name: Build test
- run: pnpm test:code:build
-
- name: Run tests
run: pnpm test
env:
CI: true
+ - name: Validate package
+ run: pnpm validate:dist
diff --git a/.gitignore b/.gitignore
index 45fbc67..0cc6641 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.DS_Store
node_modules
+.vscode
yarn-error.log
@@ -12,12 +13,5 @@ yarn-error.log
effector-reflect-*
.idea
-core/
-./index.*
-./ssr.*
-./scope.*js
-./scope.*map
-./scope.d.ts
-./reflect.*
docs/.next
docs/out
diff --git a/babel.config.json b/babel.config.json
index 1a93f7b..c8d29c4 100644
--- a/babel.config.json
+++ b/babel.config.json
@@ -1,4 +1,4 @@
{
- "presets": ["@babel/preset-env", "@babel/preset-typescript", "@babel/preset-react"],
+ "presets": ["@babel/preset-typescript", "@babel/preset-react"],
"plugins": ["@babel/plugin-transform-runtime"]
}
diff --git a/build.mjs b/build.mjs
index aae085d..dc209d8 100644
--- a/build.mjs
+++ b/build.mjs
@@ -1,10 +1,19 @@
-import fs from 'node:fs/promises';
-
+/* eslint-disable no-undef */
import prettyMs from 'pretty-ms';
import { rollup } from 'rollup';
+import 'zx/globals';
import configs from './rollup.config.cjs';
+await fs.mkdir('./dist', { recursive: true });
+
+await measure(`public-typings → ./dist/`, `copied in`, async () => {
+ await fs.copyFile('./public-types/reflect.d.ts', './dist/index.d.ts');
+
+ // `@effector/reflect/scope` types - this export is deprecated
+ await fs.copyFile('./public-types/reflect.d.ts', './dist/scope.d.ts');
+});
+
for (const config of configs) {
await measure(
`${config.input} → ${config.output.file ?? config.output.dir}`,
diff --git a/dist-test/no-ssr/create-reflect.test.tsx b/dist-test/no-ssr/create-reflect.test.tsx
deleted file mode 100644
index 0afafe8..0000000
--- a/dist-test/no-ssr/create-reflect.test.tsx
+++ /dev/null
@@ -1,220 +0,0 @@
-import { createReflect } from '../../dist/reflect';
-import { render } from '@testing-library/react';
-import userEvent from '@testing-library/user-event';
-import { createEffect, createEvent, createStore, restore } from 'effector';
-import React, { FC, InputHTMLAttributes } from 'react';
-import { act } from 'react-dom/test-utils';
-
-// Example1 (InputCustom)
-const InputCustom: FC<{
- value: string | number | string[];
- onChange(value: string): void;
- testId: string;
- placeholder?: string;
-}> = (props) => {
- return (
- props.onChange(event.currentTarget.value)}
- />
- );
-};
-
-const inputCustom = createReflect(InputCustom);
-
-test('InputCustom', async () => {
- const change = createEvent();
- const $name = restore(change, '');
-
- const Name = inputCustom({ value: $name, onChange: change });
-
- const container = render();
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Bob');
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-});
-
-test('InputCustom [replace value]', async () => {
- const change = createEvent();
- const $name = createStore('');
-
- $name.on(change, (_, next) => next);
-
- const Name = inputCustom({ name: $name, onChange: change });
-
- const container = render();
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Aliseb');
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Alise');
-});
-
-// Example 2 (InputBase)
-const InputBase: FC> = (props) => {
- return ;
-};
-
-const inputBase = createReflect(InputBase);
-
-test('InputBase', async () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const Name = inputBase({
- value: $name,
- onChange: (event) => changeName(event.currentTarget.value),
- });
-
- const changeAge = createEvent();
- const $age = restore(changeAge, 0);
- const Age = inputBase({
- value: $age,
- onChange: (event) => {
- changeAge(Number.parseInt(event.currentTarget.value, 10));
- },
- });
-
- const container = render(
- <>
-
-
- >,
- );
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Bob');
-
- expect($age.getState()).toBe(0);
- await userEvent.type(container.getByTestId('age'), '25');
- expect($age.getState()).toBe(25);
-
- const inputName = container.getByTestId('name') as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-
- const inputAge = container.getByTestId('age') as HTMLInputElement;
- expect(inputAge.value).toBe('25');
-});
-
-describe('hooks', () => {
- describe('mounted', () => {
- test('callback', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const mounted = jest.fn(() => {});
-
- const Name = inputBase(
- {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- { hooks: { mounted } },
- );
-
- render();
-
- expect(mounted.mock.calls.length).toBe(1);
- });
-
- test('event', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
- const mounted = createEvent();
-
- const fn = jest.fn(() => {});
-
- mounted.watch(fn);
-
- const Name = inputBase(
- {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- { hooks: { mounted } },
- );
-
- render();
-
- expect(fn.mock.calls.length).toBe(1);
- });
- });
-
- describe('unmounted', () => {
- const changeVisible = createEffect({ handler: () => {} });
- const $visible = restore(
- changeVisible.finally.map(({ params }) => params),
- true,
- );
-
- const Branch = createReflect<{ visible: boolean }>(({ visible, children }) =>
- visible ? <>{children}> : null,
- )({
- visible: $visible,
- });
-
- beforeEach(() => {
- act(() => {
- changeVisible(true);
- });
- });
-
- test('callback', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const unmounted = jest.fn(() => {});
-
- const Name = inputBase(
- {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- { hooks: { unmounted } },
- );
-
- render(, { wrapper: Branch });
-
- act(() => {
- changeVisible(false);
- });
-
- expect(unmounted.mock.calls.length).toBe(1);
- });
-
- test('event', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const unmounted = createEvent();
- const fn = jest.fn(() => {});
-
- unmounted.watch(fn);
-
- const Name = inputBase(
- {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- { hooks: { unmounted } },
- );
-
- render(, { wrapper: Branch });
-
- act(() => {
- changeVisible(false);
- });
-
- expect(fn.mock.calls.length).toBe(1);
- });
- });
-});
diff --git a/dist-test/no-ssr/reflect.test.tsx b/dist-test/no-ssr/reflect.test.tsx
deleted file mode 100644
index 00b2be3..0000000
--- a/dist-test/no-ssr/reflect.test.tsx
+++ /dev/null
@@ -1,233 +0,0 @@
-import { reflect } from '../../dist/reflect';
-import { render } from '@testing-library/react';
-import userEvent from '@testing-library/user-event';
-import { createEffect, createEvent, createStore, restore } from 'effector';
-import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
-import { act } from 'react-dom/test-utils';
-
-// Example1 (InputCustom)
-const InputCustom: FC<{
- value: string | number | string[];
- onChange(value: string): void;
- testId: string;
- placeholder?: string;
-}> = (props) => {
- return (
- props.onChange(event.currentTarget.value)}
- />
- );
-};
-
-test('InputCustom', async () => {
- const change = createEvent();
- const $name = restore(change, '');
-
- const Name = reflect({
- view: InputCustom,
- bind: { value: $name, onChange: change },
- });
-
- const container = render();
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Bob');
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-});
-
-test('InputCustom [replace value]', async () => {
- const change = createEvent();
- const $name = createStore('');
-
- $name.on(change, (_, next) => next);
-
- const Name = reflect({
- view: InputCustom,
- bind: { name: $name, onChange: change },
- });
-
- const container = render();
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Aliseb');
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Alise');
-});
-
-// Example 2 (InputBase)
-const InputBase: FC> = (props) => {
- return ;
-};
-
-test('InputBase', async () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const inputChanged = (event: ChangeEvent) => {
- return event.currentTarget.value;
- };
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend(inputChanged),
- },
- });
-
- const changeAge = createEvent();
- const $age = restore(changeAge, 0);
- const Age = reflect({
- view: InputBase,
- bind: {
- value: $age,
- onChange: changeAge.prepend(parseInt).prepend(inputChanged),
- },
- });
-
- const container = render(
- <>
-
-
- >,
- );
-
- expect($name.getState()).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect($name.getState()).toBe('Bob');
-
- expect($age.getState()).toBe(0);
- await userEvent.type(container.getByTestId('age'), '25');
- expect($age.getState()).toBe(25);
-
- const inputName = container.getByTestId('name') as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-
- const inputAge = container.getByTestId('age') as HTMLInputElement;
- expect(inputAge.value).toBe('25');
-});
-
-describe('hooks', () => {
- describe('mounted', () => {
- test('callback', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const mounted = jest.fn(() => {});
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- hooks: { mounted },
- });
-
- render();
-
- expect(mounted.mock.calls.length).toBe(1);
- });
-
- test('event', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
- const mounted = createEvent();
-
- const fn = jest.fn(() => {});
-
- mounted.watch(fn);
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- hooks: { mounted },
- });
-
- render();
-
- expect(fn.mock.calls.length).toBe(1);
- });
- });
-
- describe('unmounted', () => {
- const changeVisible = createEffect({ handler: () => {} });
- const $visible = restore(
- changeVisible.finally.map(({ params }) => params),
- true,
- );
-
- const Branch = reflect<{ visible: boolean }>({
- view: ({ visible, children }) => (visible ? <>{children}> : null),
- bind: { visible: $visible },
- });
-
- beforeEach(() => {
- act(() => {
- changeVisible(true);
- });
- });
-
- test('callback', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const unmounted = jest.fn(() => {});
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- hooks: { unmounted },
- });
-
- render(, { wrapper: Branch });
-
- act(() => {
- changeVisible(false);
- });
-
- expect(unmounted.mock.calls.length).toBe(1);
- });
-
- test('event', () => {
- const changeName = createEvent();
- const $name = restore(changeName, '');
-
- const unmounted = createEvent();
- const fn = jest.fn(() => {});
-
- unmounted.watch(fn);
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- hooks: { unmounted },
- });
-
- render(, { wrapper: Branch });
-
- act(() => {
- changeVisible(false);
- });
-
- expect(fn.mock.calls.length).toBe(1);
- });
- });
-});
diff --git a/dist-test/ssr/create-reflect.test.tsx b/dist-test/ssr/create-reflect.test.tsx
deleted file mode 100644
index f45d4f6..0000000
--- a/dist-test/ssr/create-reflect.test.tsx
+++ /dev/null
@@ -1,128 +0,0 @@
-import { createReflect } from '../../dist/scope';
-import { render } from '@testing-library/react';
-import { allSettled, createDomain, fork, restore } from 'effector';
-import { Provider } from 'effector-react/scope';
-import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
-
-// Example1 (InputCustom)
-const InputCustom: FC<{
- value: string | number | string[];
- onChange(value: string): void;
- testId: string;
- placeholder?: string;
-}> = (props) => {
- return (
- props.onChange(event.currentTarget.value)}
- />
- );
-};
-
-const inputCustom = createReflect(InputCustom);
-
-test('InputCustom', async () => {
- const app = createDomain();
-
- const change = app.createEvent();
- const $name = restore(change, '');
-
- const Name = inputCustom({ value: $name, onChange: change });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(change, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- const container = render(
-
-
- ,
- );
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-});
-
-test('InputCustom [replace value]', async () => {
- const app = createDomain();
-
- const change = app.createEvent();
- const $name = app.createStore('');
-
- $name.on(change, (_, next) => next);
-
- const Name = inputCustom({ name: $name, onChange: change });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(change, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- const container = render(
-
-
- ,
- );
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Alise');
-});
-
-// Example 2 (InputBase)
-const InputBase: FC> = (props) => {
- return ;
-};
-
-const inputBase = createReflect(InputBase);
-
-test('InputBase', async () => {
- const app = createDomain();
-
- const changeName = app.createEvent();
- const $name = restore(changeName, '');
-
- const inputChanged = (event: ChangeEvent) => {
- return event.currentTarget.value;
- };
-
- const Name = inputBase({
- value: $name,
- onChange: changeName.prepend(inputChanged),
- });
-
- const changeAge = app.createEvent();
- const $age = restore(changeAge, 0);
-
- const Age = inputBase({
- value: $age,
- onChange: changeAge.prepend(parseInt).prepend(inputChanged),
- });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(changeName, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- expect(scope.getState($age)).toBe(0);
- await allSettled(changeAge, { scope, params: 25 });
- expect(scope.getState($age)).toBe(25);
-
- const container = render(
-
-
-
- ,
- );
-
- const inputName = container.getByTestId('name') as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-
- const inputAge = container.getByTestId('age') as HTMLInputElement;
- expect(inputAge.value).toBe('25');
-});
diff --git a/dist-test/ssr/reflect.test.tsx b/dist-test/ssr/reflect.test.tsx
deleted file mode 100644
index 2e6bd65..0000000
--- a/dist-test/ssr/reflect.test.tsx
+++ /dev/null
@@ -1,261 +0,0 @@
-import { reflect } from '../../dist/scope';
-import { render } from '@testing-library/react';
-import userEvent from '@testing-library/user-event';
-import { allSettled, createDomain, fork, restore } from 'effector';
-import { Provider } from 'effector-react/scope';
-import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
-
-// Example1 (InputCustom)
-const InputCustom: FC<{
- value: string | number | string[];
- onChange(value: string): void;
- testId: string;
- placeholder?: string;
-}> = (props) => {
- return (
- props.onChange(event.currentTarget.value)}
- />
- );
-};
-
-test('InputCustom', async () => {
- const app = createDomain();
-
- const change = app.createEvent();
- const $name = restore(change, '');
-
- const Name = reflect({
- view: InputCustom,
- bind: { value: $name, onChange: change },
- });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(change, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- const container = render(
-
-
- ,
- );
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-});
-
-test('InputCustom [replace value]', async () => {
- const app = createDomain();
-
- const change = app.createEvent();
- const $name = app.createStore('');
-
- $name.on(change, (_, next) => next);
-
- const Name = reflect({
- view: InputCustom,
- bind: { name: $name, onChange: change },
- });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(change, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- const container = render(
-
-
- ,
- );
-
- const inputName = container.container.firstChild as HTMLInputElement;
- expect(inputName.value).toBe('Alise');
-});
-
-// Example 2 (InputBase)
-const InputBase: FC> = (props) => {
- return ;
-};
-
-test('InputBase', async () => {
- const app = createDomain();
-
- const changeName = app.createEvent();
- const $name = restore(changeName, '');
-
- const inputChanged = (event: ChangeEvent) => {
- return event.currentTarget.value;
- };
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend(inputChanged),
- },
- });
-
- const changeAge = app.createEvent();
- const $age = restore(changeAge, 0);
-
- const Age = reflect({
- view: InputBase,
- bind: {
- value: $age,
- onChange: changeAge.prepend(parseInt).prepend(inputChanged),
- },
- });
-
- const scope = fork(app);
-
- expect(scope.getState($name)).toBe('');
- await allSettled(changeName, { scope, params: 'Bob' });
- expect(scope.getState($name)).toBe('Bob');
-
- expect(scope.getState($age)).toBe(0);
- await allSettled(changeAge, { scope, params: 25 });
- expect(scope.getState($age)).toBe(25);
-
- const container = render(
-
-
-
- ,
- );
-
- const inputName = container.getByTestId('name') as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-
- const inputAge = container.getByTestId('age') as HTMLInputElement;
- expect(inputAge.value).toBe('25');
-});
-
-test('with ssr for client', async () => {
- const app = createDomain();
-
- const changeName = app.createEvent();
- const $name = restore(changeName, '');
-
- const Name = reflect({
- view: (props: {
- value: string;
- onChange: (_event: ChangeEvent) => void;
- }) => {
- return (
-
- );
- },
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- });
-
- const scope = fork(app);
-
- const container = render(
-
-
- ,
- );
-
- expect(scope.getState($name)).toBe('');
- await userEvent.type(container.getByTestId('name'), 'Bob');
- expect(scope.getState($name)).toBe('Bob');
-
- const inputName = container.getByTestId('name') as HTMLInputElement;
- expect(inputName.value).toBe('Bob');
-});
-
-test('two scopes', async () => {
- const app = createDomain();
-
- const changeName = app.createEvent();
- const $name = restore(changeName, '');
-
- const Name = reflect({
- view: InputCustom,
- bind: { value: $name, onChange: changeName },
- });
-
- const scope1 = fork(app);
- const scope2 = fork(app);
-
- expect(scope2.getState($name)).toBe('');
- await allSettled(changeName, { scope: scope2, params: 'Alise' });
- expect(scope2.getState($name)).toBe('Alise');
-
- expect(scope1.getState($name)).toBe('');
- await allSettled(changeName, { scope: scope1, params: 'Bob' });
- expect(scope1.getState($name)).toBe('Bob');
-
- const container2 = render(
-
-
- ,
- );
- const container1 = render(
-
-
- ,
- );
-
- const inputName1 = container1.getByTestId('name1') as HTMLInputElement;
- const inputName2 = container2.getByTestId('name2') as HTMLInputElement;
-
- await allSettled(changeName, { scope: scope2, params: 'Alise' });
- await allSettled(changeName, { scope: scope1, params: 'Bob' });
-
- expect(scope1.getState($name)).toBe('Bob');
- expect(scope2.getState($name)).toBe('Alise');
-
- expect(inputName1.value).toBe('Bob');
- expect(inputName2.value).toBe('Alise');
-});
-
-test('use only event for bind', async () => {
- const app = createDomain();
-
- const changeName = app.createEvent();
- const $name = restore(changeName, '');
-
- const changeAge = app.createEvent();
-
- const Name = reflect({
- view: InputBase,
- bind: {
- value: $name,
- onChange: changeName.prepend((event) => event.currentTarget.value),
- },
- });
-
- const Age = reflect({
- view: InputBase,
- bind: {
- onChange: changeAge.prepend((event) =>
- Number.parseInt(event.currentTarget.value, 10),
- ),
- },
- });
-
- const scope = fork(app);
-
- const container = render(
-
-
-
- ,
- );
-
- const name = container.getByTestId('name') as HTMLInputElement;
- const age = container.getByTestId('age') as HTMLInputElement;
-
- expect(name.value).toBe('');
- expect(age.value).toBe('');
-});
diff --git a/docs/pages/docs/_meta.json b/docs/pages/docs/_meta.json
index 0c6183e..39651a0 100644
--- a/docs/pages/docs/_meta.json
+++ b/docs/pages/docs/_meta.json
@@ -4,5 +4,6 @@
"variant": "variant",
"list": "list",
"create-reflect": "createReflect",
- "hooks": "Reflect Hooks"
+ "hooks": "Reflect Hooks",
+ "fromTag": "fromTag"
}
diff --git a/docs/pages/docs/fromTag.mdx b/docs/pages/docs/fromTag.mdx
new file mode 100644
index 0000000..edb6265
--- /dev/null
+++ b/docs/pages/docs/fromTag.mdx
@@ -0,0 +1,57 @@
+# `fromTag`
+
+```ts
+import { fromTag } from '@effector/reflect';
+```
+
+```ts
+const DomInput = fromTag('input');
+```
+
+**This feature is available since `9.0.0` release of Reflect.**
+
+Helper to simplify `reflect` usage with pure DOM elements by creating simple components based on a html tag.
+Such cases can happen, when project uses tools like Tailwind.
+
+## Arguments
+
+1. `htmlTag` - any valid and React-supported html tag.
+
+## Returns
+
+- React Component, which renders dom element.
+
+## Example
+
+Tailwind users sometimes don't create components, but simply compose classes to apply to regular HTML elements.
+
+```ts
+import { fromTag, reflect } from '@effector/reflect';
+
+const DomInput = fromTag('input');
+
+const inputEl = cva('px-3 py-2', {
+ variants: {
+ size: {
+ base: 'text-base',
+ large: 'text-3xl',
+ },
+ },
+});
+
+const NameField = reflect({
+ view: DomInput,
+ bind: {
+ type: 'email',
+ value: $value,
+ className: inputEl({ size: $inputSize }),
+ },
+});
+```
+
+### Type inference caveat
+
+For some reason Typescript type inference works a bit worse, when `fromTag` call is inlined into `reflect` - specifically, callback types are not properly inferred.
+Typescript still will check it properly, if you type your callback manually though. 🤷♂️
+
+It is recommended to save `fromTag` call result into separate variable instead, since for some reason it works better with TS.
diff --git a/docs/pages/docs/list.mdx b/docs/pages/docs/list.mdx
index dfe27f7..218132b 100644
--- a/docs/pages/docs/list.mdx
+++ b/docs/pages/docs/list.mdx
@@ -1,8 +1,7 @@
-
# `list`
```ts
-import {list} from '@effector/reflect'
+import { list } from '@effector/reflect';
```
```tsx
@@ -32,6 +31,7 @@ Method creates component, which renders list of `view` components based on items
1. `bind` — Optional object of stores, events, and static values that will be bound as props to every list item.
1. [`hooks`](/docs/hooks) — Optional object `{ mounted, unmounted }` to handle when any list item component is mounted or unmounted.
1. `getKey` - Optional function `(item: Item) => React.Key` to set key for every item in the list to help React with effecient rerenders. If not provided, index is used. See [`effector-react`](https://effector.dev/docs/api/effector-react/useList) docs for more details.
+1. `useUnitConfig` - Optional configuration object, which is passed directly to the second argument of `useUnit` from `effector-react`.
## Returns
@@ -78,3 +78,31 @@ const Items = list({
;
```
+
+### Fork API auto-compatibility
+
+**This feature is available since `9.0.0` release of Reflect.**
+
+The `list` operator also supports automatic Fork API support for callbacks **created** from `mapItem`:
+
+```ts
+const userChanged = createEvent();
+const Items = list({
+ view: Item,
+ source: $users,
+ bind: {
+ color: $color,
+ },
+ mapItem: {
+ id: (user) => user.id,
+ name: (user) => user.name,
+ onChange: (user) => (nextUser) => {
+ userChanged({ oldUser: user, nextUser });
+ },
+ },
+ getKey: (user) => `${user.id}${user.name}`,
+});
+```
+
+☝️ Notice, how `mapItem.onChange` creates a event handler callback for every rendered item. Those callbacks are also binded to Scope, if it is provided.
+For more details read the "Fork API auto-compatibility" part of the `reflect` operator documentation.
diff --git a/docs/pages/docs/reflect.mdx b/docs/pages/docs/reflect.mdx
index 3a14fb5..828a53e 100644
--- a/docs/pages/docs/reflect.mdx
+++ b/docs/pages/docs/reflect.mdx
@@ -1,8 +1,7 @@
-
# `reflect`
```ts
-import {reflect} from '@effector/reflect'
+import { reflect } from '@effector/reflect';
```
```tsx
@@ -20,6 +19,7 @@ Static method to create a component bound to effector stores and events as store
1. `view` — A react component that should be used to bind to
1. `bind` — Object of effector stores, events or any value
1. [`hooks`](/docs/hooks) — Optional object `{ mounted, unmounted }` to handle when component is mounted or unmounted.
+1. `useUnitConfig` - Optional configuration object, which is passed directly to the second argument of `useUnit` from `effector-react`.
## Returns
@@ -27,7 +27,7 @@ Static method to create a component bound to effector stores and events as store
## Example
- ```tsx
+```tsx
// ./user.tsx
import { reflect } from '@effector/reflect';
import { createEvent, restore } from 'effector';
@@ -83,3 +83,35 @@ export const User: FC = () => {
);
};
```
+
+### Fork API auto-compatibility
+
+**This feature is available since `9.0.0` release of Reflect.**
+
+The [Fork API](https://effector.dev/en/api/effector/fork/) - is a feature of Effector, which allows to seamlessly create virtualized instances of the application's state and logic called [Scope](https://effector.dev/en/api/effector/scope/)'s.
+In React to render an App in specific `Scope` a [Provider](https://effector.dev/en/api/effector-react/provider/) component should be used.
+
+When an external system (like React) calls an Effector event and Fork API is used - target `Scope` should be provided before call via `allSettled` or `scopeBind` API.
+
+The `reflect` operator does it for you under the hood, so you can provide arbitary callbacks into `bind`:
+
+```tsx
+const Age = reflect({
+ view: Input,
+ bind: {
+ value: $age,
+ placeholder: 'Age',
+ onChange: (event) => {
+ changeAge(parseInt(event.currentTarget.value));
+ },
+ },
+});
+```
+
+☝️ This feature works for `bind` field in all of Reflect operators.
+
+In most cases your callbacks will be synchronous and you will not need to do anything besides using [Provider](https://effector.dev/en/api/effector-react/provider/) to set the Scope for the whole React tree.
+
+#### Special case: Asynchronous callbacks
+
+Asynchronous callbacks are also allowed, but those should follow the rules of [Imperative Effect calls with Scope](https://effector.dev/en/api/effector/scope/) to be compatible.
diff --git a/docs/pages/docs/variant.mdx b/docs/pages/docs/variant.mdx
index 425d788..0b3a041 100644
--- a/docs/pages/docs/variant.mdx
+++ b/docs/pages/docs/variant.mdx
@@ -1,8 +1,7 @@
-
# `variant`
```ts
-import {variant} from '@effector/reflect'
+import { variant } from '@effector/reflect';
```
```tsx
@@ -24,6 +23,7 @@ Method allows to change component based on value in `$typeSelector`. Optional `b
1. `cases` — Object of components, key will be used to match
1. `default` — Optional component, that would be used if no matched in `cases`
1. [`hooks`](/docs/hooks) — Optional object `{ mounted, unmounted }` to handle when component is mounted or unmounted.
+1. `useUnitConfig` - Optional configuration object, which is passed directly to the second argument of `useUnit` from `effector-react`.
## Example
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 75f4f37..0000000
--- a/jest.config.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * For a detailed explanation regarding each configuration property and type check, visit:
- * https://jestjs.io/docs/en/configuration.html
- */
-
-module.exports = {
- // All imported modules in your tests should be mocked automatically
- // automock: false,
-
- // Stop running tests after `n` failures
- // bail: 0,
-
- // The directory where Jest should store its cached dependency information
- // cacheDirectory: "/private/var/folders/hz/yzcpd231371g28ykrmnw6_ym0000gn/T/jest_dx",
-
- // Automatically clear mock calls and instances between every test
- clearMocks: true,
-
- // Indicates whether the coverage information should be collected while executing the test
- // collectCoverage: false,
-
- // An array of glob patterns indicating a set of files for which coverage information should be collected
- // collectCoverageFrom: undefined,
-
- // The directory where Jest should output its coverage files
- // coverageDirectory: undefined,
-
- // An array of regexp pattern strings used to skip coverage collection
- // coveragePathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // Indicates which provider should be used to instrument code for coverage
- // coverageProvider: "babel",
-
- // A list of reporter names that Jest uses when writing coverage reports
- // coverageReporters: [
- // "json",
- // "text",
- // "lcov",
- // "clover"
- // ],
-
- // An object that configures minimum threshold enforcement for coverage results
- // coverageThreshold: undefined,
-
- // A path to a custom dependency extractor
- // dependencyExtractor: undefined,
-
- // Make calling deprecated APIs throw helpful error messages
- // errorOnDeprecated: false,
-
- // Force coverage collection from ignored files using an array of glob patterns
- // forceCoverageMatch: [],
-
- // A path to a module which exports an async function that is triggered once before all test suites
- // globalSetup: undefined,
-
- // A path to a module which exports an async function that is triggered once after all test suites
- // globalTeardown: undefined,
-
- // A set of global variables that need to be available in all test environments
- // globals: {},
-
- // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
- // maxWorkers: "50%",
-
- // An array of directory names to be searched recursively up from the requiring module's location
- // moduleDirectories: [
- // "node_modules"
- // ],
-
- // An array of file extensions your modules use
- moduleFileExtensions: ['js', 'cjs', 'json', 'jsx', 'ts', 'tsx', 'node'],
-
- // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
- // moduleNameMapper: {},
-
- // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
- // modulePathIgnorePatterns: [],
-
- // Activates notifications for test results
- // notify: false,
-
- // An enum that specifies notification mode. Requires { notify: true }
- // notifyMode: "failure-change",
-
- // A preset that is used as a base for Jest's configuration
- // preset: undefined,
-
- // Run tests from one or more projects
- // projects: undefined,
-
- // Use this configuration option to add custom reporters to Jest
- // reporters: undefined,
-
- // Automatically reset mock state between every test
- // resetMocks: false,
-
- // Reset the module registry before running each individual test
- // resetModules: false,
-
- // A path to a custom resolver
- // resolver: undefined,
-
- // Automatically restore mock state between every test
- // restoreMocks: false,
-
- // The root directory that Jest should scan for tests and modules within
- // rootDir: undefined,
-
- // A list of paths to directories that Jest should use to search for files in
- // roots: [
- // ""
- // ],
-
- // Allows you to use a custom runner instead of Jest's default test runner
- // runner: "jest-runner",
-
- // The paths to modules that run some code to configure or set up the testing environment before each test
- // setupFiles: [],
-
- // A list of paths to modules that run some code to configure or set up the testing framework before each test
- // setupFilesAfterEnv: [],
-
- // The number of seconds after which a test is considered as slow and reported as such in the results.
- // slowTestThreshold: 5,
-
- // A list of paths to snapshot serializer modules Jest should use for snapshot testing
- // snapshotSerializers: [],
-
- // The test environment that will be used for testing
- testEnvironment: 'jsdom',
-
- // Options that will be passed to the testEnvironment
- // testEnvironmentOptions: {},
-
- // Adds a location field to test results
- // testLocationInResults: false,
-
- // The glob patterns Jest uses to detect test files
- // testMatch: [
- // "**/__tests__/**/*.[jt]s?(x)",
- // "**/?(*.)+(spec|test).[tj]s?(x)"
- // ],
-
- // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
- // testPathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // The regexp pattern or array of patterns that Jest uses to detect test files
- // testRegex: [],
-
- // This option allows the use of a custom results processor
- // testResultsProcessor: undefined,
-
- // This option allows use of a custom test runner
- // testRunner: "jasmine2",
-
- // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
- // testURL: "http://localhost",
-
- // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
- // timers: "real",
-
- // A map from regular expressions to paths to transformers
- // transform: undefined,
-
- // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- // transformIgnorePatterns: [
- // "/node_modules/",
- // "\\.pnp\\.[^\\/]+$"
- // ],
-
- // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
- // unmockedModulePathPatterns: undefined,
-
- // Indicates whether each individual test should be reported during the run
- // verbose: undefined,
-
- // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
- // watchPathIgnorePatterns: [],
-
- // Whether to use watchman for file crawling
- // watchman: true,
-};
diff --git a/package.json b/package.json
index ed2d61c..4430402 100644
--- a/package.json
+++ b/package.json
@@ -15,19 +15,10 @@
"exports": {
".": {
"types": "./index.d.ts",
- "import": "./reflect.mjs",
- "require": "./reflect.cjs",
- "default": "./reflect.mjs"
+ "import": "./index.mjs",
+ "require": "./index.cjs",
+ "default": "./index.mjs"
},
- "./reflect.mjs": "./reflect.mjs",
- "./ssr.mjs": "./ssr.mjs",
- "./ssr": {
- "types": "./ssr.d.ts",
- "import": "./ssr.mjs",
- "require": "./ssr.js",
- "default": "./ssr.mjs"
- },
- "./scope.mjs": "./scope.mjs",
"./scope": {
"types": "./scope.d.ts",
"import": "./scope.mjs",
@@ -35,8 +26,8 @@
"default": "./scope.mjs"
}
},
- "main": "reflect.cjs",
- "module": "reflect.mjs",
+ "main": "index.cjs",
+ "module": "index.mjs",
"typings": "index.d.ts",
"files": [
"Readme.md",
@@ -44,71 +35,71 @@
"index.d.ts",
"ssr.d.ts",
"scope.d.ts",
- "reflect.cjs",
- "reflect.cjs.map",
- "reflect.mjs",
- "reflect.mjs.map",
- "ssr.js",
- "ssr.js.map",
- "ssr.mjs",
- "ssr.mjs.map",
+ "index.cjs",
+ "index.cjs.map",
+ "index.mjs",
+ "index.mjs.map",
"scope.js",
"scope.js.map",
"scope.mjs",
"scope.mjs.map"
],
"scripts": {
- "test:code": "jest ./src",
+ "validate:dist": "node ./validate_dist.mjs",
+ "test:code": "vitest run ./src",
"test:types": "tsc -p ./type-tests",
"test": "pnpm test:code && pnpm test:types",
- "test:code:build": "jest ./dist-test",
"build": "pnpm clear-build && node ./build.mjs",
"clear-build": "rm -rf dist",
"prepublishOnly": "pnpm build",
"prepare": "husky install"
},
"devDependencies": {
- "@babel/core": "^7.12.7",
- "@babel/plugin-transform-runtime": "^7.12.1",
- "@babel/preset-env": "^7.12.7",
- "@babel/preset-react": "^7.12.7",
- "@babel/preset-typescript": "^7.12.7",
+ "@arethetypeswrong/cli": "^0.13.3",
+ "@babel/core": "^7.21.0",
+ "@babel/plugin-transform-runtime": "^7.21.0",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
"@rollup/plugin-babel": "^6.0.3",
"@rollup/plugin-commonjs": "^24.0.1",
"@rollup/plugin-node-resolve": "^15.0.1",
"@rollup/plugin-terser": "^0.4.0",
- "@testing-library/dom": "^7.21.4",
- "@testing-library/react": "^11.2.2",
- "@testing-library/user-event": "^12.2.2",
+ "@testing-library/dom": "^7.31.2",
+ "@testing-library/react": "^11.2.7",
+ "@testing-library/user-event": "^12.8.3",
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
- "@types/jest": "^26.0.15",
- "@types/react": "^16.9.0",
- "@types/react-dom": "^16.9.0",
+ "@types/jest": "^26.0.24",
+ "@types/react": "^18.2.45",
+ "@types/react-dom": "^18.2.18",
"babel-jest": "^29.4.3",
"babel-plugin-module-resolver": "^4.1.0",
- "effector": "^22.0.6",
- "effector-react": "^22.1.0",
- "eslint": "^8.22.0",
- "eslint-kit": "^6.11.0",
- "fs-extra": "^9.0.1",
+ "effector": "^23.1.0",
+ "effector-react": "^23.1.0",
+ "eslint": "^8.56.0",
+ "eslint-kit": "^6.12.0",
+ "fs-extra": "^9.1.0",
"husky": "^8.0.3",
- "jest": "^26.6.3",
+ "jsdom": "^23.0.1",
"lint-staged": "^13.1.2",
"prettier": "^2.8.4",
"pretty-ms": "^8.0.0",
- "react": "^17.0.1",
- "react-dom": "^17.0.1",
+ "publint": "^0.2.6",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"rollup": "^3.18.0",
"rollup-plugin-typescript2": "^0.34.1",
- "svelte": "^3.2.0",
- "ts-jest": "^26.4.4",
- "tsd": "^0.19.0",
- "typescript": "^4.9.5",
- "uglify-js": "^3.17.4"
+ "svelte": "^3.55.1",
+ "tsd": "^0.19.1",
+ "typescript": "^5.3.3",
+ "uglify-js": "^3.17.4",
+ "vite-tsconfig-paths": "^4.2.2",
+ "vitest": "^1.0.4",
+ "zx": "^7.2.3"
},
"peerDependencies": {
- "effector": "^22.0.0 || ^23.0.0",
- "effector-react": "^22.1.0 || ^23.0.0",
+ "effector": "^23.1.0",
+ "effector-react": "^23.1.0",
"react": ">=16.8.0 <19.0.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6e9ae51..79cac94 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,45 +1,50 @@
lockfileVersion: 5.4
specifiers:
- '@babel/core': ^7.12.7
- '@babel/plugin-transform-runtime': ^7.12.1
- '@babel/preset-env': ^7.12.7
- '@babel/preset-react': ^7.12.7
- '@babel/preset-typescript': ^7.12.7
+ '@arethetypeswrong/cli': ^0.13.3
+ '@babel/core': ^7.21.0
+ '@babel/plugin-transform-runtime': ^7.21.0
+ '@babel/preset-env': ^7.20.2
+ '@babel/preset-react': ^7.18.6
+ '@babel/preset-typescript': ^7.21.0
'@rollup/plugin-babel': ^6.0.3
'@rollup/plugin-commonjs': ^24.0.1
'@rollup/plugin-node-resolve': ^15.0.1
'@rollup/plugin-terser': ^0.4.0
- '@testing-library/dom': ^7.21.4
- '@testing-library/react': ^11.2.2
- '@testing-library/user-event': ^12.2.2
+ '@testing-library/dom': ^7.31.2
+ '@testing-library/react': ^11.2.7
+ '@testing-library/user-event': ^12.8.3
'@trivago/prettier-plugin-sort-imports': ^4.1.1
- '@types/jest': ^26.0.15
- '@types/react': ^16.9.0
- '@types/react-dom': ^16.9.0
+ '@types/jest': ^26.0.24
+ '@types/react': ^18.2.45
+ '@types/react-dom': ^18.2.18
babel-jest: ^29.4.3
babel-plugin-module-resolver: ^4.1.0
- effector: ^22.0.6
- effector-react: ^22.1.0
- eslint: ^8.22.0
- eslint-kit: ^6.11.0
- fs-extra: ^9.0.1
+ effector: ^23.1.0
+ effector-react: ^23.1.0
+ eslint: ^8.56.0
+ eslint-kit: ^6.12.0
+ fs-extra: ^9.1.0
husky: ^8.0.3
- jest: ^26.6.3
+ jsdom: ^23.0.1
lint-staged: ^13.1.2
prettier: ^2.8.4
pretty-ms: ^8.0.0
- react: ^17.0.1
- react-dom: ^17.0.1
+ publint: ^0.2.6
+ react: ^18.2.0
+ react-dom: ^18.2.0
rollup: ^3.18.0
rollup-plugin-typescript2: ^0.34.1
- svelte: ^3.2.0
- ts-jest: ^26.4.4
- tsd: ^0.19.0
- typescript: ^4.9.5
+ svelte: ^3.55.1
+ tsd: ^0.19.1
+ typescript: ^5.3.3
uglify-js: ^3.17.4
+ vite-tsconfig-paths: ^4.2.2
+ vitest: ^1.0.4
+ zx: ^7.2.3
devDependencies:
+ '@arethetypeswrong/cli': 0.13.3
'@babel/core': 7.21.0
'@babel/plugin-transform-runtime': 7.21.0_@babel+core@7.21.0
'@babel/preset-env': 7.20.2_@babel+core@7.21.0
@@ -50,36 +55,44 @@ devDependencies:
'@rollup/plugin-node-resolve': 15.0.1_rollup@3.18.0
'@rollup/plugin-terser': 0.4.0_rollup@3.18.0
'@testing-library/dom': 7.31.2
- '@testing-library/react': 11.2.7_sfoxds7t5ydpegc3knd667wn6m
+ '@testing-library/react': 11.2.7_biqbaboplfbrettd7655fr4n2y
'@testing-library/user-event': 12.8.3_7izb363m7fjrh7ob6q4a2yqaqe
'@trivago/prettier-plugin-sort-imports': 4.1.1_prettier@2.8.4
'@types/jest': 26.0.24
- '@types/react': 16.14.35
- '@types/react-dom': 16.9.18
+ '@types/react': 18.2.45
+ '@types/react-dom': 18.2.18
babel-jest: 29.4.3_@babel+core@7.21.0
babel-plugin-module-resolver: 4.1.0
- effector: 22.5.2
- effector-react: 22.5.0_ljphihe53hzzpqkbmewyqqpz6i
- eslint: 8.22.0
- eslint-kit: 6.11.0_eqcc7dcqpetk7diz5y3u642qiq
+ effector: 23.1.0
+ effector-react: 23.1.0_n5b7oxjg3vra2b3yx63k5eyewy
+ eslint: 8.56.0
+ eslint-kit: 6.12.0_6oivf66i6dulewcc5as4eyqgny
fs-extra: 9.1.0
husky: 8.0.3
- jest: 26.6.3
+ jsdom: 23.0.1
lint-staged: 13.1.2
prettier: 2.8.4
pretty-ms: 8.0.0
- react: 17.0.2
- react-dom: 17.0.2_react@17.0.2
+ publint: 0.2.6
+ react: 18.2.0
+ react-dom: 18.2.0_react@18.2.0
rollup: 3.18.0
- rollup-plugin-typescript2: 0.34.1_fn2onl6nbsljlgjr3jlzr6w7we
+ rollup-plugin-typescript2: 0.34.1_vjug3yta6lblqnvu3zjesxy34m
svelte: 3.55.1
- ts-jest: 26.5.6_xuote2qreek47x2di7kesslrai
tsd: 0.19.1
- typescript: 4.9.5
+ typescript: 5.3.3
uglify-js: 3.17.4
+ vite-tsconfig-paths: 4.2.2_typescript@5.3.3
+ vitest: 1.0.4_jsdom@23.0.1
+ zx: 7.2.3
packages:
+ /@aashutoshrathi/word-wrap/1.2.6:
+ resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/@ampproject/remapping/2.2.0:
resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
engines: {node: '>=6.0.0'}
@@ -88,6 +101,35 @@ packages:
'@jridgewell/trace-mapping': 0.3.17
dev: true
+ /@andrewbranch/untar.js/1.0.3:
+ resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==}
+ dev: true
+
+ /@arethetypeswrong/cli/0.13.3:
+ resolution: {integrity: sha512-lA29j9fkRGq+hNE3zQGxD/d8WmjhimSaPU2887CBe0Yv3C1UbIWvy51mYerp3/NoevjBLKSWhHmP5oY/eavtjQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+ dependencies:
+ '@arethetypeswrong/core': 0.13.3
+ chalk: 4.1.2
+ cli-table3: 0.6.3
+ commander: 10.0.1
+ marked: 9.1.6
+ marked-terminal: 6.2.0_marked@9.1.6
+ semver: 7.5.4
+ dev: true
+
+ /@arethetypeswrong/core/0.13.3:
+ resolution: {integrity: sha512-oxa26D3z5DEv9LGzfJWV/6PhQd170dFfDOXl9J3cGRNLo2B68zj6/YOD1RJaYF/kmxechdXT1XyGUPOtkXv8Lg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@andrewbranch/untar.js': 1.0.3
+ fflate: 0.7.4
+ semver: 7.5.4
+ typescript: 5.3.2
+ validate-npm-package-name: 5.0.0
+ dev: true
+
/@babel/code-frame/7.18.6:
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
engines: {node: '>=6.9.0'}
@@ -123,7 +165,7 @@ packages:
- supports-color
dev: true
- /@babel/eslint-parser/7.19.1_rghbqnosgqfoyre2cnweoyhlwq:
+ /@babel/eslint-parser/7.19.1_dkrwebtm74vbg4pxmm7okwicfa:
resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
peerDependencies:
@@ -132,7 +174,7 @@ packages:
dependencies:
'@babel/core': 7.21.0
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-visitor-keys: 2.1.0
semver: 6.3.0
dev: true
@@ -1434,26 +1476,233 @@ packages:
to-fast-properties: 2.0.0
dev: true
- /@bcoe/v8-coverage/0.2.3:
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ /@colors/colors/1.5.0:
+ resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
+ engines: {node: '>=0.1.90'}
+ requiresBuild: true
dev: true
+ optional: true
- /@cnakazawa/watch/1.0.4:
- resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==}
- engines: {node: '>=0.1.95'}
- hasBin: true
+ /@esbuild/android-arm/0.19.9:
+ resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64/0.19.9:
+ resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64/0.19.9:
+ resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64/0.19.9:
+ resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64/0.19.9:
+ resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64/0.19.9:
+ resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64/0.19.9:
+ resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm/0.19.9:
+ resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64/0.19.9:
+ resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32/0.19.9:
+ resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64/0.19.9:
+ resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el/0.19.9:
+ resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64/0.19.9:
+ resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64/0.19.9:
+ resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x/0.19.9:
+ resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64/0.19.9:
+ resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64/0.19.9:
+ resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64/0.19.9:
+ resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64/0.19.9:
+ resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64/0.19.9:
+ resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32/0.19.9:
+ resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64/0.19.9:
+ resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@eslint-community/eslint-utils/4.4.0_eslint@8.56.0:
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
- exec-sh: 0.3.6
- minimist: 1.2.8
+ eslint: 8.56.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@eslint-community/regexpp/4.10.0:
+ resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
- /@eslint/eslintrc/1.4.1:
- resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
+ /@eslint/eslintrc/2.1.4:
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.4.1
+ espree: 9.6.1
globals: 13.20.0
ignore: 5.2.4
import-fresh: 3.3.0
@@ -1464,23 +1713,29 @@ packages:
- supports-color
dev: true
- /@humanwhocodes/config-array/0.10.7:
- resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==}
+ /@eslint/js/8.56.0:
+ resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@humanwhocodes/config-array/0.11.13:
+ resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
engines: {node: '>=10.10.0'}
dependencies:
- '@humanwhocodes/object-schema': 1.2.1
+ '@humanwhocodes/object-schema': 2.0.1
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
dev: true
- /@humanwhocodes/gitignore-to-minimatch/1.0.2:
- resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==}
+ /@humanwhocodes/module-importer/1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
dev: true
- /@humanwhocodes/object-schema/1.2.1:
- resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ /@humanwhocodes/object-schema/2.0.1:
+ resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
dev: true
/@istanbuljs/load-nyc-config/1.1.0:
@@ -1499,123 +1754,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /@jest/console/26.6.2:
- resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- chalk: 4.1.2
- jest-message-util: 26.6.2
- jest-util: 26.6.2
- slash: 3.0.0
- dev: true
-
- /@jest/core/26.6.3:
- resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/console': 26.6.2
- '@jest/reporters': 26.6.2
- '@jest/test-result': 26.6.2
- '@jest/transform': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- exit: 0.1.2
- graceful-fs: 4.2.10
- jest-changed-files: 26.6.2
- jest-config: 26.6.3
- jest-haste-map: 26.6.2
- jest-message-util: 26.6.2
- jest-regex-util: 26.0.0
- jest-resolve: 26.6.2
- jest-resolve-dependencies: 26.6.3
- jest-runner: 26.6.3
- jest-runtime: 26.6.3
- jest-snapshot: 26.6.2
- jest-util: 26.6.2
- jest-validate: 26.6.2
- jest-watcher: 26.6.2
- micromatch: 4.0.5
- p-each-series: 2.2.0
- rimraf: 3.0.2
- slash: 3.0.0
- strip-ansi: 6.0.1
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /@jest/environment/26.6.2:
- resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/fake-timers': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- jest-mock: 26.6.2
- dev: true
-
- /@jest/fake-timers/26.6.2:
- resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- '@sinonjs/fake-timers': 6.0.1
- '@types/node': 18.14.4
- jest-message-util: 26.6.2
- jest-mock: 26.6.2
- jest-util: 26.6.2
- dev: true
-
- /@jest/globals/26.6.2:
- resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/environment': 26.6.2
- '@jest/types': 26.6.2
- expect: 26.6.2
- dev: true
-
- /@jest/reporters/26.6.2:
- resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@bcoe/v8-coverage': 0.2.3
- '@jest/console': 26.6.2
- '@jest/test-result': 26.6.2
- '@jest/transform': 26.6.2
- '@jest/types': 26.6.2
- chalk: 4.1.2
- collect-v8-coverage: 1.0.1
- exit: 0.1.2
- glob: 7.2.3
- graceful-fs: 4.2.10
- istanbul-lib-coverage: 3.2.0
- istanbul-lib-instrument: 4.0.3
- istanbul-lib-report: 3.0.0
- istanbul-lib-source-maps: 4.0.1
- istanbul-reports: 3.1.5
- jest-haste-map: 26.6.2
- jest-resolve: 26.6.2
- jest-util: 26.6.2
- jest-worker: 26.6.2
- slash: 3.0.0
- source-map: 0.6.1
- string-length: 4.0.2
- terminal-link: 2.1.1
- v8-to-istanbul: 7.1.2
- optionalDependencies:
- node-notifier: 8.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/@jest/schemas/29.4.3:
resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -1623,63 +1761,11 @@ packages:
'@sinclair/typebox': 0.25.24
dev: true
- /@jest/source-map/26.6.2:
- resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- callsites: 3.1.0
- graceful-fs: 4.2.10
- source-map: 0.6.1
- dev: true
-
- /@jest/test-result/26.6.2:
- resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/console': 26.6.2
- '@jest/types': 26.6.2
- '@types/istanbul-lib-coverage': 2.0.4
- collect-v8-coverage: 1.0.1
- dev: true
-
- /@jest/test-sequencer/26.6.3:
- resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/test-result': 26.6.2
- graceful-fs: 4.2.10
- jest-haste-map: 26.6.2
- jest-runner: 26.6.3
- jest-runtime: 26.6.3
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /@jest/transform/26.6.2:
- resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==}
- engines: {node: '>= 10.14.2'}
+ /@jest/schemas/29.6.3:
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.21.0
- '@jest/types': 26.6.2
- babel-plugin-istanbul: 6.1.1
- chalk: 4.1.2
- convert-source-map: 1.9.0
- fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.10
- jest-haste-map: 26.6.2
- jest-regex-util: 26.0.0
- jest-util: 26.6.2
- micromatch: 4.0.5
- pirates: 4.0.5
- slash: 3.0.0
- source-map: 0.6.1
- write-file-atomic: 3.0.3
- transitivePeerDependencies:
- - supports-color
+ '@sinclair/typebox': 0.27.8
dev: true
/@jest/transform/29.4.3:
@@ -1766,6 +1852,10 @@ packages:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
dev: true
+ /@jridgewell/sourcemap-codec/1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ dev: true
+
/@jridgewell/trace-mapping/0.3.17:
resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
dependencies:
@@ -1899,37 +1989,138 @@ packages:
rollup: 3.18.0
dev: true
- /@sinclair/typebox/0.25.24:
- resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
+ /@rollup/rollup-android-arm-eabi/4.9.0:
+ resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
dev: true
+ optional: true
- /@sinonjs/commons/1.8.6:
- resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
- dependencies:
- type-detect: 4.0.8
+ /@rollup/rollup-android-arm64/4.9.0:
+ resolution: {integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
dev: true
+ optional: true
- /@sinonjs/fake-timers/6.0.1:
- resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==}
- dependencies:
- '@sinonjs/commons': 1.8.6
+ /@rollup/rollup-darwin-arm64/4.9.0:
+ resolution: {integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
dev: true
+ optional: true
- /@testing-library/dom/7.31.2:
- resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==}
- engines: {node: '>=10'}
- dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/runtime': 7.21.0
- '@types/aria-query': 4.2.2
- aria-query: 4.2.2
- chalk: 4.1.2
- dom-accessibility-api: 0.5.16
- lz-string: 1.4.4
- pretty-format: 26.6.2
+ /@rollup/rollup-darwin-x64/4.9.0:
+ resolution: {integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm-gnueabihf/4.9.0:
+ resolution: {integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-gnu/4.9.0:
+ resolution: {integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-musl/4.9.0:
+ resolution: {integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-riscv64-gnu/4.9.0:
+ resolution: {integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-gnu/4.9.0:
+ resolution: {integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-musl/4.9.0:
+ resolution: {integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-arm64-msvc/4.9.0:
+ resolution: {integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-ia32-msvc/4.9.0:
+ resolution: {integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-x64-msvc/4.9.0:
+ resolution: {integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@sinclair/typebox/0.25.24:
+ resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
+ dev: true
+
+ /@sinclair/typebox/0.27.8:
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+ dev: true
+
+ /@sindresorhus/is/4.6.0:
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
dev: true
- /@testing-library/react/11.2.7_sfoxds7t5ydpegc3knd667wn6m:
+ /@testing-library/dom/7.31.2:
+ resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/runtime': 7.21.0
+ '@types/aria-query': 4.2.2
+ aria-query: 4.2.2
+ chalk: 4.1.2
+ dom-accessibility-api: 0.5.16
+ lz-string: 1.4.4
+ pretty-format: 26.6.2
+ dev: true
+
+ /@testing-library/react/11.2.7_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==}
engines: {node: '>=10'}
peerDependencies:
@@ -1938,8 +2129,8 @@ packages:
dependencies:
'@babel/runtime': 7.21.0
'@testing-library/dom': 7.31.2
- react: 17.0.2
- react-dom: 17.0.2_react@17.0.2
+ react: 18.2.0
+ react-dom: 18.2.0_react@18.2.0
dev: true
/@testing-library/user-event/12.8.3_7izb363m7fjrh7ob6q4a2yqaqe:
@@ -1952,11 +2143,6 @@ packages:
'@testing-library/dom': 7.31.2
dev: true
- /@tootallnate/once/1.1.2:
- resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
- engines: {node: '>= 6'}
- dev: true
-
/@trivago/prettier-plugin-sort-imports/4.1.1_prettier@2.8.4:
resolution: {integrity: sha512-dQ2r2uzNr1x6pJsuh/8x0IRA3CBUB+pWEW3J/7N98axqt7SQSm+2fy0FLNXvXGg77xEDC7KHxJlHfLYyi7PDcw==}
peerDependencies:
@@ -2019,13 +2205,20 @@ packages:
resolution: {integrity: sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==}
dependencies:
'@types/estree': 1.0.0
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
dev: true
/@types/estree/1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
dev: true
+ /@types/fs-extra/11.0.4:
+ resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
+ dependencies:
+ '@types/jsonfile': 6.1.4
+ '@types/node': 18.19.3
+ dev: true
+
/@types/graceful-fs/4.1.6:
resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
dependencies:
@@ -2055,14 +2248,20 @@ packages:
pretty-format: 26.6.2
dev: true
- /@types/json-schema/7.0.11:
- resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
+ /@types/json-schema/7.0.15:
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
/@types/json5/0.0.29:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
+ /@types/jsonfile/6.1.4:
+ resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
+ dependencies:
+ '@types/node': 18.19.3
+ dev: true
+
/@types/minimist/1.2.2:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
dev: true
@@ -2071,20 +2270,26 @@ packages:
resolution: {integrity: sha512-VhCw7I7qO2X49+jaKcAUwi3rR+hbxT5VcYF493+Z5kMLI0DL568b7JI4IDJaxWFH0D/xwmGJNoXisyX+w7GH/g==}
dev: true
- /@types/normalize-package-data/2.4.1:
- resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
+ /@types/node/18.19.3:
+ resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==}
+ dependencies:
+ undici-types: 5.26.5
dev: true
- /@types/prettier/2.7.2:
- resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==}
+ /@types/normalize-package-data/2.4.1:
+ resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
dev: true
/@types/prop-types/15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
dev: true
- /@types/react-dom/16.9.18:
- resolution: {integrity: sha512-lmNARUX3+rNF/nmoAFqasG0jAA7q6MeGZK/fdeLwY3kAA4NPgHHrG5bNQe2B5xmD4B+x6Z6h0rEJQ7MEEgQxsw==}
+ /@types/ps-tree/1.1.6:
+ resolution: {integrity: sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==}
+ dev: true
+
+ /@types/react-dom/18.2.18:
+ resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
dependencies:
'@types/react': 16.14.35
dev: true
@@ -2097,6 +2302,14 @@ packages:
csstype: 3.1.1
dev: true
+ /@types/react/18.2.45:
+ resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==}
+ dependencies:
+ '@types/prop-types': 15.7.5
+ '@types/scheduler': 0.16.2
+ csstype: 3.1.1
+ dev: true
+
/@types/resolve/1.20.2:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: true
@@ -2105,12 +2318,12 @@ packages:
resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
dev: true
- /@types/semver/7.3.13:
- resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
+ /@types/semver/7.5.6:
+ resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
dev: true
- /@types/stack-utils/2.0.1:
- resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+ /@types/which/3.0.3:
+ resolution: {integrity: sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==}
dev: true
/@types/yargs-parser/21.0.0:
@@ -2129,8 +2342,8 @@ packages:
'@types/yargs-parser': 21.0.0
dev: true
- /@typescript-eslint/eslint-plugin/5.48.0_fnoubwmydqvb5cjqwgmzljgkee:
- resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==}
+ /@typescript-eslint/eslint-plugin/5.57.1_nng2mkdjbd7djgr6uzehtknfyy:
+ resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/parser': ^5.0.0
@@ -2140,24 +2353,25 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
- '@typescript-eslint/scope-manager': 5.48.0
- '@typescript-eslint/type-utils': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
- '@typescript-eslint/utils': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 5.57.1_xdgzedli73k7lw4xlyzszm74om
+ '@typescript-eslint/scope-manager': 5.57.1
+ '@typescript-eslint/type-utils': 5.57.1_xdgzedli73k7lw4xlyzszm74om
+ '@typescript-eslint/utils': 5.57.1_xdgzedli73k7lw4xlyzszm74om
debug: 4.3.4
- eslint: 8.22.0
- ignore: 5.2.4
+ eslint: 8.56.0
+ grapheme-splitter: 1.0.4
+ ignore: 5.3.0
natural-compare-lite: 1.4.0
- regexpp: 3.2.0
semver: 7.3.8
- tsutils: 3.21.0_typescript@4.9.5
- typescript: 4.9.5
+ tsutils: 3.21.0_typescript@5.3.3
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser/5.48.0_hp3n5f6hao4yyg55iy34n6oive:
- resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==}
+ /@typescript-eslint/parser/5.57.1_xdgzedli73k7lw4xlyzszm74om:
+ resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -2166,24 +2380,16 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 5.48.0
- '@typescript-eslint/types': 5.48.0
- '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5
+ '@typescript-eslint/scope-manager': 5.57.1
+ '@typescript-eslint/types': 5.57.1
+ '@typescript-eslint/typescript-estree': 5.57.1_typescript@5.3.3
debug: 4.3.4
- eslint: 8.22.0
- typescript: 4.9.5
+ eslint: 8.56.0
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager/5.48.0:
- resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- '@typescript-eslint/types': 5.48.0
- '@typescript-eslint/visitor-keys': 5.48.0
- dev: true
-
/@typescript-eslint/scope-manager/5.54.0:
resolution: {integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2192,8 +2398,16 @@ packages:
'@typescript-eslint/visitor-keys': 5.54.0
dev: true
- /@typescript-eslint/type-utils/5.48.0_hp3n5f6hao4yyg55iy34n6oive:
- resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==}
+ /@typescript-eslint/scope-manager/5.57.1:
+ resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.57.1
+ '@typescript-eslint/visitor-keys': 5.57.1
+ dev: true
+
+ /@typescript-eslint/type-utils/5.57.1_xdgzedli73k7lw4xlyzszm74om:
+ resolution: {integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
@@ -2202,28 +2416,28 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5
- '@typescript-eslint/utils': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
+ '@typescript-eslint/typescript-estree': 5.57.1_typescript@5.3.3
+ '@typescript-eslint/utils': 5.57.1_xdgzedli73k7lw4xlyzszm74om
debug: 4.3.4
- eslint: 8.22.0
- tsutils: 3.21.0_typescript@4.9.5
- typescript: 4.9.5
+ eslint: 8.56.0
+ tsutils: 3.21.0_typescript@5.3.3
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types/5.48.0:
- resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==}
+ /@typescript-eslint/types/5.54.0:
+ resolution: {integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/types/5.54.0:
- resolution: {integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==}
+ /@typescript-eslint/types/5.57.1:
+ resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.5:
- resolution: {integrity: sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==}
+ /@typescript-eslint/typescript-estree/5.54.0_typescript@5.3.3:
+ resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@@ -2231,20 +2445,20 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.48.0
- '@typescript-eslint/visitor-keys': 5.48.0
+ '@typescript-eslint/types': 5.54.0
+ '@typescript-eslint/visitor-keys': 5.54.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
- tsutils: 3.21.0_typescript@4.9.5
- typescript: 4.9.5
+ tsutils: 3.21.0_typescript@5.3.3
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree/5.54.0_typescript@4.9.5:
- resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==}
+ /@typescript-eslint/typescript-estree/5.57.1_typescript@5.3.3:
+ resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@@ -2252,83 +2466,122 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.54.0
- '@typescript-eslint/visitor-keys': 5.54.0
+ '@typescript-eslint/types': 5.57.1
+ '@typescript-eslint/visitor-keys': 5.57.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
- tsutils: 3.21.0_typescript@4.9.5
- typescript: 4.9.5
+ tsutils: 3.21.0_typescript@5.3.3
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils/5.48.0_hp3n5f6hao4yyg55iy34n6oive:
- resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==}
+ /@typescript-eslint/utils/5.54.0_xdgzedli73k7lw4xlyzszm74om:
+ resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@types/json-schema': 7.0.11
- '@types/semver': 7.3.13
- '@typescript-eslint/scope-manager': 5.48.0
- '@typescript-eslint/types': 5.48.0
- '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.5
- eslint: 8.22.0
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.6
+ '@typescript-eslint/scope-manager': 5.54.0
+ '@typescript-eslint/types': 5.54.0
+ '@typescript-eslint/typescript-estree': 5.54.0_typescript@5.3.3
+ eslint: 8.56.0
eslint-scope: 5.1.1
- eslint-utils: 3.0.0_eslint@8.22.0
+ eslint-utils: 3.0.0_eslint@8.56.0
semver: 7.3.8
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/utils/5.54.0_hp3n5f6hao4yyg55iy34n6oive:
- resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==}
+ /@typescript-eslint/utils/5.57.1_xdgzedli73k7lw4xlyzszm74om:
+ resolution: {integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@types/json-schema': 7.0.11
- '@types/semver': 7.3.13
- '@typescript-eslint/scope-manager': 5.54.0
- '@typescript-eslint/types': 5.54.0
- '@typescript-eslint/typescript-estree': 5.54.0_typescript@4.9.5
- eslint: 8.22.0
+ '@eslint-community/eslint-utils': 4.4.0_eslint@8.56.0
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.6
+ '@typescript-eslint/scope-manager': 5.57.1
+ '@typescript-eslint/types': 5.57.1
+ '@typescript-eslint/typescript-estree': 5.57.1_typescript@5.3.3
+ eslint: 8.56.0
eslint-scope: 5.1.1
- eslint-utils: 3.0.0_eslint@8.22.0
semver: 7.3.8
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/visitor-keys/5.48.0:
- resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==}
+ /@typescript-eslint/visitor-keys/5.54.0:
+ resolution: {integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.48.0
- eslint-visitor-keys: 3.3.0
+ '@typescript-eslint/types': 5.54.0
+ eslint-visitor-keys: 3.4.3
dev: true
- /@typescript-eslint/visitor-keys/5.54.0:
- resolution: {integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==}
+ /@typescript-eslint/visitor-keys/5.57.1:
+ resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.54.0
- eslint-visitor-keys: 3.3.0
+ '@typescript-eslint/types': 5.57.1
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
+ /@ungap/structured-clone/1.2.0:
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ dev: true
+
+ /@vitest/expect/1.0.4:
+ resolution: {integrity: sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==}
+ dependencies:
+ '@vitest/spy': 1.0.4
+ '@vitest/utils': 1.0.4
+ chai: 4.3.10
+ dev: true
+
+ /@vitest/runner/1.0.4:
+ resolution: {integrity: sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==}
+ dependencies:
+ '@vitest/utils': 1.0.4
+ p-limit: 5.0.0
+ pathe: 1.1.1
+ dev: true
+
+ /@vitest/snapshot/1.0.4:
+ resolution: {integrity: sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==}
+ dependencies:
+ magic-string: 0.30.5
+ pathe: 1.1.1
+ pretty-format: 29.7.0
+ dev: true
+
+ /@vitest/spy/1.0.4:
+ resolution: {integrity: sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==}
+ dependencies:
+ tinyspy: 2.2.0
dev: true
- /abab/2.0.6:
- resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
+ /@vitest/utils/1.0.4:
+ resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==}
+ dependencies:
+ diff-sequences: 29.6.3
+ loupe: 2.3.7
+ pretty-format: 29.7.0
dev: true
- /acorn-globals/6.0.0:
- resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
+ /acorn-jsx/5.3.2_acorn@8.11.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- acorn: 7.4.1
- acorn-walk: 7.2.0
+ acorn: 8.11.2
dev: true
/acorn-jsx/5.3.2_acorn@8.8.2:
@@ -2339,13 +2592,13 @@ packages:
acorn: 8.8.2
dev: true
- /acorn-walk/7.2.0:
- resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
+ /acorn-walk/8.3.1:
+ resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==}
engines: {node: '>=0.4.0'}
dev: true
- /acorn/7.4.1:
- resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ /acorn/8.11.2:
+ resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
@@ -2356,9 +2609,9 @@ packages:
hasBin: true
dev: true
- /agent-base/6.0.2:
- resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
- engines: {node: '>= 6.0.0'}
+ /agent-base/7.1.0:
+ resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
+ engines: {node: '>= 14'}
dependencies:
debug: 4.3.4
transitivePeerDependencies:
@@ -2389,6 +2642,13 @@ packages:
type-fest: 0.21.3
dev: true
+ /ansi-escapes/6.2.0:
+ resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ type-fest: 3.13.1
+ dev: true
+
/ansi-regex/5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
@@ -2413,18 +2673,18 @@ packages:
color-convert: 2.0.1
dev: true
+ /ansi-styles/5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+ dev: true
+
/ansi-styles/6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
dev: true
- /anymatch/2.0.0:
- resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==}
- dependencies:
- micromatch: 3.1.10
- normalize-path: 2.1.1
- transitivePeerDependencies:
- - supports-color
+ /ansicolors/0.3.2:
+ resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
dev: true
/anymatch/3.1.3:
@@ -2453,21 +2713,6 @@ packages:
'@babel/runtime-corejs3': 7.21.0
dev: true
- /arr-diff/4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /arr-flatten/1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /arr-union/3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/array-includes/3.1.6:
resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
engines: {node: '>= 0.4'}
@@ -2484,11 +2729,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /array-unique/0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/array.prototype.flat/1.3.1:
resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
@@ -2514,9 +2754,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /assign-symbols/1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
- engines: {node: '>=0.10.0'}
+ /assertion-error/1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
/ast-types-flow/0.0.7:
@@ -2537,12 +2776,6 @@ packages:
engines: {node: '>= 4.0.0'}
dev: true
- /atob/2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
- engines: {node: '>= 4.5.0'}
- hasBin: true
- dev: true
-
/available-typed-arrays/1.0.5:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
@@ -2557,25 +2790,6 @@ packages:
resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==}
dev: true
- /babel-jest/26.6.3_@babel+core@7.21.0:
- resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==}
- engines: {node: '>= 10.14.2'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.21.0
- '@jest/transform': 26.6.2
- '@jest/types': 26.6.2
- '@types/babel__core': 7.20.0
- babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 26.6.2_@babel+core@7.21.0
- chalk: 4.1.2
- graceful-fs: 4.2.10
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/babel-jest/29.4.3_@babel+core@7.21.0:
resolution: {integrity: sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2607,16 +2821,6 @@ packages:
- supports-color
dev: true
- /babel-plugin-jest-hoist/26.6.2:
- resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@babel/template': 7.20.7
- '@babel/types': 7.21.2
- '@types/babel__core': 7.20.0
- '@types/babel__traverse': 7.18.3
- dev: true
-
/babel-plugin-jest-hoist/29.4.3:
resolution: {integrity: sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2707,17 +2911,6 @@ packages:
'@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.0
dev: true
- /babel-preset-jest/26.6.2_@babel+core@7.21.0:
- resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==}
- engines: {node: '>= 10.14.2'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.21.0
- babel-plugin-jest-hoist: 26.6.2
- babel-preset-current-node-syntax: 1.0.1_@babel+core@7.21.0
- dev: true
-
/babel-preset-jest/29.4.3_@babel+core@7.21.0:
resolution: {integrity: sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2742,19 +2935,6 @@ packages:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
- /base/0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- cache-base: 1.0.1
- class-utils: 0.3.6
- component-emitter: 1.3.0
- define-property: 1.0.0
- isobject: 3.0.1
- mixin-deep: 1.3.2
- pascalcase: 0.1.1
- dev: true
-
/boolbase/1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: true
@@ -2772,24 +2952,6 @@ packages:
balanced-match: 1.0.2
dev: true
- /braces/2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-flatten: 1.1.0
- array-unique: 0.3.2
- extend-shallow: 2.0.1
- fill-range: 4.0.0
- isobject: 3.0.1
- repeat-element: 1.1.4
- snapdragon: 0.8.2
- snapdragon-node: 2.1.1
- split-string: 3.1.0
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/braces/3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@@ -2797,28 +2959,17 @@ packages:
fill-range: 7.0.1
dev: true
- /browser-process-hrtime/1.0.0:
- resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
- dev: true
-
/browserslist/4.21.5:
resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001458
+ caniuse-lite: 1.0.30001570
electron-to-chromium: 1.4.315
node-releases: 2.0.10
update-browserslist-db: 1.0.10_browserslist@4.21.5
dev: true
- /bs-logger/0.2.6:
- resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
- engines: {node: '>= 6'}
- dependencies:
- fast-json-stable-stringify: 2.1.0
- dev: true
-
/bser/2.1.1:
resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
dependencies:
@@ -2834,19 +2985,15 @@ packages:
engines: {node: '>=6'}
dev: true
- /cache-base/1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
- engines: {node: '>=0.10.0'}
+ /builtins/5.0.1:
+ resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
- collection-visit: 1.0.0
- component-emitter: 1.3.0
- get-value: 2.0.6
- has-value: 1.0.0
- isobject: 3.0.1
- set-value: 2.0.1
- to-object-path: 0.3.0
- union-value: 1.0.1
- unset-value: 1.0.0
+ semver: 7.5.4
+ dev: true
+
+ /cac/6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
dev: true
/call-bind/1.0.2:
@@ -2875,20 +3022,29 @@ packages:
engines: {node: '>=6'}
dev: true
- /camelcase/6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
+ /caniuse-lite/1.0.30001570:
+ resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==}
dev: true
- /caniuse-lite/1.0.30001458:
- resolution: {integrity: sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==}
+ /cardinal/2.1.1:
+ resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==}
+ hasBin: true
+ dependencies:
+ ansicolors: 0.3.2
+ redeyed: 2.1.1
dev: true
- /capture-exit/2.0.0:
- resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ /chai/4.3.10:
+ resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
+ engines: {node: '>=4'}
dependencies:
- rsvp: 4.8.5
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.3
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.0.8
dev: true
/chalk/2.4.2:
@@ -2908,13 +3064,20 @@ packages:
supports-color: 7.2.0
dev: true
+ /chalk/5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
/char-regex/1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
dev: true
- /ci-info/2.0.0:
- resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
+ /check-error/1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+ dependencies:
+ get-func-name: 2.0.2
dev: true
/ci-info/3.8.0:
@@ -2922,20 +3085,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /cjs-module-lexer/0.6.0:
- resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==}
- dev: true
-
- /class-utils/0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-union: 3.1.0
- define-property: 0.2.5
- isobject: 3.0.1
- static-extend: 0.1.2
- dev: true
-
/clean-regexp/1.0.0:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
@@ -2955,6 +3104,15 @@ packages:
restore-cursor: 3.1.0
dev: true
+ /cli-table3/0.6.3:
+ resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==}
+ engines: {node: 10.* || >= 12.*}
+ dependencies:
+ string-width: 4.2.3
+ optionalDependencies:
+ '@colors/colors': 1.5.0
+ dev: true
+
/cli-truncate/2.1.0:
resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
engines: {node: '>=8'}
@@ -2971,31 +3129,6 @@ packages:
string-width: 5.1.2
dev: true
- /cliui/6.0.0:
- resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 6.2.0
- dev: true
-
- /co/4.6.0:
- resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
- engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
- dev: true
-
- /collect-v8-coverage/1.0.1:
- resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
- dev: true
-
- /collection-visit/1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- map-visit: 1.0.0
- object-visit: 1.0.1
- dev: true
-
/color-convert/1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
@@ -3028,6 +3161,11 @@ packages:
delayed-stream: 1.0.0
dev: true
+ /commander/10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+ dev: true
+
/commander/2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
@@ -3041,10 +3179,6 @@ packages:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
dev: true
- /component-emitter/1.3.0:
- resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
- dev: true
-
/concat-map/0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
@@ -3057,11 +3191,6 @@ packages:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
- /copy-descriptor/0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/core-js-compat/3.29.0:
resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==}
dependencies:
@@ -3073,17 +3202,6 @@ packages:
requiresBuild: true
dev: true
- /cross-spawn/6.0.5:
- resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
- engines: {node: '>=4.8'}
- dependencies:
- nice-try: 1.0.5
- path-key: 2.0.1
- semver: 5.7.1
- shebang-command: 1.2.0
- which: 1.3.1
- dev: true
-
/cross-spawn/7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -3099,19 +3217,11 @@ packages:
hasBin: true
dev: true
- /cssom/0.3.8:
- resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
- dev: true
-
- /cssom/0.4.4:
- resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==}
- dev: true
-
- /cssstyle/2.3.0:
- resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
- engines: {node: '>=8'}
+ /cssstyle/3.0.0:
+ resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==}
+ engines: {node: '>=14'}
dependencies:
- cssom: 0.3.8
+ rrweb-cssom: 0.6.0
dev: true
/csstype/3.1.1:
@@ -3122,13 +3232,17 @@ packages:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
dev: true
- /data-urls/2.0.0:
- resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==}
- engines: {node: '>=10'}
+ /data-uri-to-buffer/4.0.1:
+ resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
+ engines: {node: '>= 12'}
+ dev: true
+
+ /data-urls/5.0.0:
+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
+ engines: {node: '>=18'}
dependencies:
- abab: 2.0.6
- whatwg-mimetype: 2.3.0
- whatwg-url: 8.7.0
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.0.0
dev: true
/debug/2.6.9:
@@ -3182,9 +3296,11 @@ packages:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
dev: true
- /decode-uri-component/0.2.2:
- resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
- engines: {node: '>=0.10'}
+ /deep-eql/4.1.3:
+ resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
+ engines: {node: '>=6'}
+ dependencies:
+ type-detect: 4.0.8
dev: true
/deep-is/0.1.4:
@@ -3204,43 +3320,21 @@ packages:
object-keys: 1.1.1
dev: true
- /define-property/0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 0.1.6
- dev: true
-
- /define-property/1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 1.0.2
- dev: true
-
- /define-property/2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 1.0.2
- isobject: 3.0.1
- dev: true
-
/delayed-stream/1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
dev: true
- /detect-newline/3.1.0:
- resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
- engines: {node: '>=8'}
- dev: true
-
/diff-sequences/26.6.2:
resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==}
engines: {node: '>= 10.14.2'}
dev: true
+ /diff-sequences/29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dev: true
+
/dir-glob/3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -3266,31 +3360,28 @@ packages:
resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
dev: true
- /domexception/2.0.1:
- resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==}
- engines: {node: '>=8'}
- dependencies:
- webidl-conversions: 5.0.0
+ /duplexer/0.1.2:
+ resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
dev: true
/eastasianwidth/0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
- /effector-react/22.5.0_ljphihe53hzzpqkbmewyqqpz6i:
- resolution: {integrity: sha512-f9aOWFKr4i6fhdoV1uHa2n89f9+9edmOJL9UhMgjUcs2al3fyh3R5j1WDx0cHU6TuFtrlnFsulbhd2D/8q7reQ==}
+ /effector-react/23.1.0_n5b7oxjg3vra2b3yx63k5eyewy:
+ resolution: {integrity: sha512-RrCyu45zhxzIwzy6azjgPjXENRM2AM4y3TJF4faj5vN6z0u8ItR9W91wokHu5+BwFj6MKg2NxQkL4r4jWtIRoQ==}
engines: {node: '>=11.0.0'}
peerDependencies:
- effector: ^22.0.2
+ effector: ^23.0.0
react: '>=16.8.0 <19.0.0'
dependencies:
- effector: 22.5.2
- react: 17.0.2
- use-sync-external-store: 1.2.0_react@17.0.2
+ effector: 23.1.0
+ react: 18.2.0
+ use-sync-external-store: 1.2.0_react@18.2.0
dev: true
- /effector/22.5.2:
- resolution: {integrity: sha512-xEINDCZYZdtmyS9LbjaLMUF1PBmlm3LqPowaKP2sNdBUDHirfGXhWzczWkufdGTJFGBN5sB2pWipmSIUMprbPg==}
+ /effector/23.1.0:
+ resolution: {integrity: sha512-PsiNE2UmEnS/xmyshISjMwqqGcUKF0upnA/8o1qXafyfrV1kYkOwhs9fuDfUKIAbgZVSZb+bowymPpfrNu7jFw==}
engines: {node: '>=11.0.0'}
dev: true
@@ -3298,11 +3389,6 @@ packages:
resolution: {integrity: sha512-ndBQYz3Eyy3rASjjQ9poMJGoAlsZ/aZnq6GBsGL4w/4sWIAwiUHVSsMuADbxa8WJw7pZ0oxLpGbtoDt4vRTdCg==}
dev: true
- /emittery/0.7.2:
- resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==}
- engines: {node: '>=10'}
- dev: true
-
/emoji-regex/8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
@@ -3311,10 +3397,13 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- /end-of-stream/1.4.4:
- resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- dependencies:
- once: 1.4.0
+ /emojilib/2.4.0:
+ resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
+ dev: true
+
+ /entities/4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
dev: true
/error-ex/1.3.2:
@@ -3386,6 +3475,36 @@ packages:
is-symbol: 1.0.4
dev: true
+ /esbuild/0.19.9:
+ resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.19.9
+ '@esbuild/android-arm64': 0.19.9
+ '@esbuild/android-x64': 0.19.9
+ '@esbuild/darwin-arm64': 0.19.9
+ '@esbuild/darwin-x64': 0.19.9
+ '@esbuild/freebsd-arm64': 0.19.9
+ '@esbuild/freebsd-x64': 0.19.9
+ '@esbuild/linux-arm': 0.19.9
+ '@esbuild/linux-arm64': 0.19.9
+ '@esbuild/linux-ia32': 0.19.9
+ '@esbuild/linux-loong64': 0.19.9
+ '@esbuild/linux-mips64el': 0.19.9
+ '@esbuild/linux-ppc64': 0.19.9
+ '@esbuild/linux-riscv64': 0.19.9
+ '@esbuild/linux-s390x': 0.19.9
+ '@esbuild/linux-x64': 0.19.9
+ '@esbuild/netbsd-x64': 0.19.9
+ '@esbuild/openbsd-x64': 0.19.9
+ '@esbuild/sunos-x64': 0.19.9
+ '@esbuild/win32-arm64': 0.19.9
+ '@esbuild/win32-ia32': 0.19.9
+ '@esbuild/win32-x64': 0.19.9
+ dev: true
+
/escalade/3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
@@ -3396,29 +3515,11 @@ packages:
engines: {node: '>=0.8.0'}
dev: true
- /escape-string-regexp/2.0.0:
- resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
- engines: {node: '>=8'}
- dev: true
-
/escape-string-regexp/4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
dev: true
- /escodegen/2.0.0:
- resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
- engines: {node: '>=6.0'}
- hasBin: true
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionator: 0.8.3
- optionalDependencies:
- source-map: 0.6.1
- dev: true
-
/eslint-formatter-pretty/4.1.0:
resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==}
engines: {node: '>=10'}
@@ -3438,7 +3539,7 @@ packages:
peerDependencies:
eslint-plugin-import: '>=2.2.0'
dependencies:
- eslint-plugin-import: 2.26.0_zznokraecjt4ixvvqcdste35vq
+ eslint-plugin-import: 2.26.0_f4ys4s7zkl2mdirrprvcfybpte
glob-parent: 5.1.2
resolve: 1.22.1
dev: true
@@ -3461,7 +3562,7 @@ packages:
- supports-color
dev: true
- /eslint-import-resolver-typescript/2.7.1_2iahngt3u2tkbdlu6s4gkur3pu:
+ /eslint-import-resolver-typescript/2.7.1_zvsnalgsyvncnva2npvrrk24m4:
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
engines: {node: '>=4'}
peerDependencies:
@@ -3469,8 +3570,8 @@ packages:
eslint-plugin-import: '*'
dependencies:
debug: 4.3.4
- eslint: 8.22.0
- eslint-plugin-import: 2.26.0_zznokraecjt4ixvvqcdste35vq
+ eslint: 8.56.0
+ eslint-plugin-import: 2.26.0_f4ys4s7zkl2mdirrprvcfybpte
glob: 7.2.3
is-glob: 4.0.3
resolve: 1.22.1
@@ -3479,37 +3580,37 @@ packages:
- supports-color
dev: true
- /eslint-kit/6.11.0_eqcc7dcqpetk7diz5y3u642qiq:
- resolution: {integrity: sha512-k3I5xrcpSVAXFkjLEL1/lfLHzZtrjmlFm5CmLEKzkTRnWl9pJ2EajOGfcYGKkLgH5F8BfT6tmRXQaLqglKtUNw==}
+ /eslint-kit/6.12.0_6oivf66i6dulewcc5as4eyqgny:
+ resolution: {integrity: sha512-NPW2t3XVeiJX2yn1ui3EXbExeoFYdkNHF6dLFRusrwRkKjwsinGv/Sr914700EGz+xqO6OdDA4LSToQOoxHmDg==}
peerDependencies:
eslint: ^8.16.0
dependencies:
'@babel/core': 7.21.0
- '@babel/eslint-parser': 7.19.1_rghbqnosgqfoyre2cnweoyhlwq
+ '@babel/eslint-parser': 7.19.1_dkrwebtm74vbg4pxmm7okwicfa
'@babel/preset-react': 7.18.6_@babel+core@7.21.0
'@next/eslint-plugin-next': 12.3.4
- '@typescript-eslint/eslint-plugin': 5.48.0_fnoubwmydqvb5cjqwgmzljgkee
- '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
+ '@typescript-eslint/eslint-plugin': 5.57.1_nng2mkdjbd7djgr6uzehtknfyy
+ '@typescript-eslint/parser': 5.57.1_xdgzedli73k7lw4xlyzszm74om
babel-preset-solid: 1.6.10_@babel+core@7.21.0
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-import-resolver-custom-alias: 1.3.0_fkfqfehjtk7sk2efaqbgxsuasa
eslint-import-resolver-jsconfig: 1.1.0
- eslint-import-resolver-typescript: 2.7.1_2iahngt3u2tkbdlu6s4gkur3pu
- eslint-plugin-effector: 0.8.1_cu7mi643ugjcisd2zyg7fsgm34
- eslint-plugin-import: 2.26.0_zznokraecjt4ixvvqcdste35vq
- eslint-plugin-jsx-a11y: 6.5.1_eslint@8.22.0
- eslint-plugin-prettier: 4.0.0_byfczlb2qtn5q2l2jf6clujxw4
- eslint-plugin-react: 7.30.0_eslint@8.22.0
- eslint-plugin-react-hooks: 4.5.0_eslint@8.22.0
- eslint-plugin-simple-import-sort: 7.0.0_eslint@8.22.0
- eslint-plugin-solid: 0.4.7_hp3n5f6hao4yyg55iy34n6oive
- eslint-plugin-sonarjs: 0.13.0_eslint@8.22.0
- eslint-plugin-svelte3: 4.0.0_i3ku6u2keygdduzorqmifrlrvi
- eslint-plugin-unicorn: 42.0.0_eslint@8.22.0
- eslint-plugin-vue: 9.0.1_eslint@8.22.0
+ eslint-import-resolver-typescript: 2.7.1_zvsnalgsyvncnva2npvrrk24m4
+ eslint-plugin-effector: 0.8.1_npainx27e3v45mksrcmsdgsgmm
+ eslint-plugin-import: 2.26.0_f4ys4s7zkl2mdirrprvcfybpte
+ eslint-plugin-jsx-a11y: 6.5.1_eslint@8.56.0
+ eslint-plugin-prettier: 4.0.0_ow77vrim5k6dyc7pybszqy6yqq
+ eslint-plugin-react: 7.30.0_eslint@8.56.0
+ eslint-plugin-react-hooks: 4.5.0_eslint@8.56.0
+ eslint-plugin-simple-import-sort: 7.0.0_eslint@8.56.0
+ eslint-plugin-solid: 0.4.7_xdgzedli73k7lw4xlyzszm74om
+ eslint-plugin-sonarjs: 0.13.0_eslint@8.56.0
+ eslint-plugin-svelte3: 4.0.0_pnwvbr5gicnq736esygrnsqlbi
+ eslint-plugin-unicorn: 42.0.0_eslint@8.56.0
+ eslint-plugin-vue: 9.0.1_eslint@8.56.0
prettier: 2.6.2
semver: 7.3.8
- vue-eslint-parser: 9.0.2_eslint@8.22.0
+ vue-eslint-parser: 9.0.2_eslint@8.56.0
transitivePeerDependencies:
- effector
- eslint-config-prettier
@@ -3519,7 +3620,7 @@ packages:
- typescript
dev: true
- /eslint-module-utils/2.7.4_jmtkdf3hovbfyxfkbu4ev6qzze:
+ /eslint-module-utils/2.7.4_6np5j5sca3gyo67poufsk6dmkm:
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
@@ -3540,28 +3641,28 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
+ '@typescript-eslint/parser': 5.57.1_xdgzedli73k7lw4xlyzszm74om
debug: 3.2.7
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-import-resolver-node: 0.3.7
- eslint-import-resolver-typescript: 2.7.1_2iahngt3u2tkbdlu6s4gkur3pu
+ eslint-import-resolver-typescript: 2.7.1_zvsnalgsyvncnva2npvrrk24m4
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-effector/0.8.1_cu7mi643ugjcisd2zyg7fsgm34:
+ /eslint-plugin-effector/0.8.1_npainx27e3v45mksrcmsdgsgmm:
resolution: {integrity: sha512-r+wV4qkyxdrmBjKhuqbrhcIQReCPGFLQS5z2s0w+pmyRExZ2Ge2BkwWs6TCIN0xTYU98CmD2q31BqQOj2yUFZQ==}
engines: {node: ^14 || ^16 || ^18}
peerDependencies:
effector: '*'
eslint: 7 || 8
dependencies:
- effector: 22.5.2
- eslint: 8.22.0
+ effector: 23.1.0
+ eslint: 8.56.0
prettier: 2.8.4
dev: true
- /eslint-plugin-import/2.26.0_zznokraecjt4ixvvqcdste35vq:
+ /eslint-plugin-import/2.26.0_f4ys4s7zkl2mdirrprvcfybpte:
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
@@ -3571,14 +3672,14 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.48.0_hp3n5f6hao4yyg55iy34n6oive
+ '@typescript-eslint/parser': 5.57.1_xdgzedli73k7lw4xlyzszm74om
array-includes: 3.1.6
array.prototype.flat: 1.3.1
debug: 2.6.9
doctrine: 2.1.0
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-import-resolver-node: 0.3.7
- eslint-module-utils: 2.7.4_jmtkdf3hovbfyxfkbu4ev6qzze
+ eslint-module-utils: 2.7.4_6np5j5sca3gyo67poufsk6dmkm
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
@@ -3592,7 +3693,7 @@ packages:
- supports-color
dev: true
- /eslint-plugin-jsx-a11y/6.5.1_eslint@8.22.0:
+ /eslint-plugin-jsx-a11y/6.5.1_eslint@8.56.0:
resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==}
engines: {node: '>=4.0'}
peerDependencies:
@@ -3606,14 +3707,14 @@ packages:
axobject-query: 2.2.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 8.22.0
+ eslint: 8.56.0
has: 1.0.3
jsx-ast-utils: 3.3.3
language-tags: 1.0.8
minimatch: 3.1.2
dev: true
- /eslint-plugin-prettier/4.0.0_byfczlb2qtn5q2l2jf6clujxw4:
+ /eslint-plugin-prettier/4.0.0_ow77vrim5k6dyc7pybszqy6yqq:
resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==}
engines: {node: '>=6.0.0'}
peerDependencies:
@@ -3624,21 +3725,21 @@ packages:
eslint-config-prettier:
optional: true
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
prettier: 2.6.2
prettier-linter-helpers: 1.0.0
dev: true
- /eslint-plugin-react-hooks/4.5.0_eslint@8.22.0:
+ /eslint-plugin-react-hooks/4.5.0_eslint@8.56.0:
resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==}
engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
dev: true
- /eslint-plugin-react/7.30.0_eslint@8.22.0:
+ /eslint-plugin-react/7.30.0_eslint@8.56.0:
resolution: {integrity: sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==}
engines: {node: '>=4'}
peerDependencies:
@@ -3647,7 +3748,7 @@ packages:
array-includes: 3.1.6
array.prototype.flatmap: 1.3.1
doctrine: 2.1.0
- eslint: 8.22.0
+ eslint: 8.56.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.3
minimatch: 3.1.2
@@ -3661,22 +3762,22 @@ packages:
string.prototype.matchall: 4.0.8
dev: true
- /eslint-plugin-simple-import-sort/7.0.0_eslint@8.22.0:
+ /eslint-plugin-simple-import-sort/7.0.0_eslint@8.56.0:
resolution: {integrity: sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==}
peerDependencies:
eslint: '>=5.0.0'
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
dev: true
- /eslint-plugin-solid/0.4.7_hp3n5f6hao4yyg55iy34n6oive:
+ /eslint-plugin-solid/0.4.7_xdgzedli73k7lw4xlyzszm74om:
resolution: {integrity: sha512-oWjW1YhhcGF6guWzdC44m/350A3l/5wgg9Gry+aWjeWpCeD2PMQT9jnjV3Sdibprjjvqe8w9db/H+oqpm3JHmg==}
engines: {node: '>=12.0.0'}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@typescript-eslint/utils': 5.54.0_hp3n5f6hao4yyg55iy34n6oive
- eslint: 8.22.0
+ '@typescript-eslint/utils': 5.54.0_xdgzedli73k7lw4xlyzszm74om
+ eslint: 8.56.0
is-html: 2.0.0
jsx-ast-utils: 3.3.3
kebab-case: 1.0.2
@@ -3687,26 +3788,26 @@ packages:
- typescript
dev: true
- /eslint-plugin-sonarjs/0.13.0_eslint@8.22.0:
+ /eslint-plugin-sonarjs/0.13.0_eslint@8.56.0:
resolution: {integrity: sha512-t3m7ta0EspzDxSOZh3cEOJIJVZgN/TlJYaBGnQlK6W/PZNbWep8q4RQskkJkA7/zwNpX0BaoEOSUUrqaADVoqA==}
engines: {node: '>=12'}
peerDependencies:
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
dev: true
- /eslint-plugin-svelte3/4.0.0_i3ku6u2keygdduzorqmifrlrvi:
+ /eslint-plugin-svelte3/4.0.0_pnwvbr5gicnq736esygrnsqlbi:
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
peerDependencies:
eslint: '>=8.0.0'
svelte: ^3.2.0
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
svelte: 3.55.1
dev: true
- /eslint-plugin-unicorn/42.0.0_eslint@8.22.0:
+ /eslint-plugin-unicorn/42.0.0_eslint@8.56.0:
resolution: {integrity: sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==}
engines: {node: '>=12'}
peerDependencies:
@@ -3715,8 +3816,8 @@ packages:
'@babel/helper-validator-identifier': 7.19.1
ci-info: 3.8.0
clean-regexp: 1.0.0
- eslint: 8.22.0
- eslint-utils: 3.0.0_eslint@8.22.0
+ eslint: 8.56.0
+ eslint-utils: 3.0.0_eslint@8.56.0
esquery: 1.5.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
@@ -3729,19 +3830,19 @@ packages:
strip-indent: 3.0.0
dev: true
- /eslint-plugin-vue/9.0.1_eslint@8.22.0:
+ /eslint-plugin-vue/9.0.1_eslint@8.56.0:
resolution: {integrity: sha512-/w/9/vzz+4bSYtp5UqXgJ0CfycXTMtpp6lkz7/fMp0CcJxPWyRP6Pr88ihhrsNEcVt2ZweMupWRNYa+5Md41LQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
- eslint: 8.22.0
- eslint-utils: 3.0.0_eslint@8.22.0
+ eslint: 8.56.0
+ eslint-utils: 3.0.0_eslint@8.56.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.11
semver: 7.3.8
- vue-eslint-parser: 9.0.2_eslint@8.22.0
+ vue-eslint-parser: 9.0.2_eslint@8.56.0
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -3767,13 +3868,21 @@ packages:
estraverse: 5.3.0
dev: true
- /eslint-utils/3.0.0_eslint@8.22.0:
+ /eslint-scope/7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: true
+
+ /eslint-utils/3.0.0_eslint@8.56.0:
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-visitor-keys: 2.1.0
dev: true
@@ -3787,50 +3896,54 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint/8.22.0:
- resolution: {integrity: sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==}
+ /eslint-visitor-keys/3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint/8.56.0:
+ resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint/eslintrc': 1.4.1
- '@humanwhocodes/config-array': 0.10.7
- '@humanwhocodes/gitignore-to-minimatch': 1.0.2
+ '@eslint-community/eslint-utils': 4.4.0_eslint@8.56.0
+ '@eslint-community/regexpp': 4.10.0
+ '@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.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
- eslint-scope: 7.1.1
- eslint-utils: 3.0.0_eslint@8.22.0
- eslint-visitor-keys: 3.3.0
- espree: 9.4.1
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
- functional-red-black-tree: 1.0.1
glob-parent: 6.0.2
globals: 13.20.0
- globby: 11.1.0
- grapheme-splitter: 1.0.4
+ graphemer: 1.4.0
ignore: 5.2.4
- import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
+ 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.1
- regexpp: 3.2.0
+ optionator: 0.9.3
strip-ansi: 6.0.1
- strip-json-comments: 3.1.1
text-table: 0.2.0
- v8-compile-cache: 2.3.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -3844,6 +3957,15 @@ packages:
eslint-visitor-keys: 3.3.0
dev: true
+ /espree/9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.11.2
+ acorn-jsx: 5.3.2_acorn@8.11.2
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
/esprima/4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
@@ -3883,36 +4005,16 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /exec-sh/0.3.6:
- resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==}
- dev: true
-
- /execa/1.0.0:
- resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
- engines: {node: '>=6'}
- dependencies:
- cross-spawn: 6.0.5
- get-stream: 4.1.0
- is-stream: 1.1.0
- npm-run-path: 2.0.2
- p-finally: 1.0.0
- signal-exit: 3.0.7
- strip-eof: 1.0.0
- dev: true
-
- /execa/4.1.0:
- resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
- engines: {node: '>=10'}
+ /event-stream/3.3.4:
+ resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==}
dependencies:
- cross-spawn: 7.0.3
- get-stream: 5.2.0
- human-signals: 1.1.1
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
+ duplexer: 0.1.2
+ from: 0.1.7
+ map-stream: 0.1.0
+ pause-stream: 0.0.11
+ split: 0.3.3
+ stream-combiner: 0.0.4
+ through: 2.3.8
dev: true
/execa/6.1.0:
@@ -3930,67 +4032,19 @@ packages:
strip-final-newline: 3.0.0
dev: true
- /exit/0.1.2:
- resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
- engines: {node: '>= 0.8.0'}
- dev: true
-
- /expand-brackets/2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- posix-character-classes: 0.1.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /expect/26.6.2:
- resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- ansi-styles: 4.3.0
- jest-get-type: 26.3.0
- jest-matcher-utils: 26.6.2
- jest-message-util: 26.6.2
- jest-regex-util: 26.0.0
- dev: true
-
- /extend-shallow/2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-extendable: 0.1.1
- dev: true
-
- /extend-shallow/3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- engines: {node: '>=0.10.0'}
- dependencies:
- assign-symbols: 1.0.0
- is-extendable: 1.0.1
- dev: true
-
- /extglob/2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
- engines: {node: '>=0.10.0'}
+ /execa/8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
dependencies:
- array-unique: 0.3.2
- define-property: 1.0.0
- expand-brackets: 2.1.4
- extend-shallow: 2.0.1
- fragment-cache: 0.2.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
+ 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
dev: true
/fast-deep-equal/3.1.3:
@@ -4001,8 +4055,8 @@ packages:
resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
dev: true
- /fast-glob/3.2.12:
- resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ /fast-glob/3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -4032,6 +4086,18 @@ packages:
bser: 2.1.1
dev: true
+ /fetch-blob/3.2.0:
+ resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
+ engines: {node: ^12.20 || >= 14.13}
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 3.2.1
+ dev: true
+
+ /fflate/0.7.4:
+ resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==}
+ dev: true
+
/file-entry-cache/6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
@@ -4039,16 +4105,6 @@ packages:
flat-cache: 3.0.4
dev: true
- /fill-range/4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 2.0.1
- is-number: 3.0.0
- repeat-string: 1.6.1
- to-regex-range: 2.1.1
- dev: true
-
/fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -4118,13 +4174,8 @@ packages:
is-callable: 1.2.7
dev: true
- /for-in/1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /form-data/3.0.1:
- resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==}
+ /form-data/4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
dependencies:
asynckit: 0.4.0
@@ -4132,11 +4183,15 @@ packages:
mime-types: 2.1.35
dev: true
- /fragment-cache/0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
- engines: {node: '>=0.10.0'}
+ /formdata-polyfill/4.0.10:
+ resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
+ engines: {node: '>=12.20.0'}
dependencies:
- map-cache: 0.2.2
+ fetch-blob: 3.2.0
+ dev: true
+
+ /from/0.1.7:
+ resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==}
dev: true
/fs-extra/10.1.0:
@@ -4148,6 +4203,15 @@ packages:
universalify: 2.0.0
dev: true
+ /fs-extra/11.2.0:
+ resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.10
+ jsonfile: 6.1.0
+ universalify: 2.0.0
+ dev: true
+
/fs-extra/9.1.0:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
@@ -4162,8 +4226,8 @@ packages:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
- /fsevents/2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ /fsevents/2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
@@ -4184,22 +4248,22 @@ packages:
functions-have-names: 1.2.3
dev: true
- /functional-red-black-tree/1.0.1:
- resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}
- dev: true
-
/functions-have-names/1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: true
+ /fx/31.0.0:
+ resolution: {integrity: sha512-OoeYSPKqNKmfnH4s+rGYI0c8OZmqqOOXsUtqy0YyHqQQoQSDiDs3m3M9uXKx5OQR+jDx7/FhYqpO3kl/As/xgg==}
+ hasBin: true
+ dev: true
+
/gensync/1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
dev: true
- /get-caller-file/2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
+ /get-func-name/2.0.2:
+ resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
dev: true
/get-intrinsic/1.2.0:
@@ -4215,25 +4279,16 @@ packages:
engines: {node: '>=8.0.0'}
dev: true
- /get-stream/4.1.0:
- resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
- engines: {node: '>=6'}
- dependencies:
- pump: 3.0.0
- dev: true
-
- /get-stream/5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- engines: {node: '>=8'}
- dependencies:
- pump: 3.0.0
- dev: true
-
/get-stream/6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
dev: true
+ /get-stream/8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+ dev: true
+
/get-symbol-description/1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
@@ -4242,11 +4297,6 @@ packages:
get-intrinsic: 1.2.0
dev: true
- /get-value/2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/glob-parent/5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -4319,12 +4369,27 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.2.12
- ignore: 5.2.4
+ fast-glob: 3.3.2
+ ignore: 5.3.0
merge2: 1.4.1
slash: 3.0.0
dev: true
+ /globby/13.2.2:
+ resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.0
+ merge2: 1.4.1
+ slash: 4.0.0
+ dev: true
+
+ /globrex/0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ dev: true
+
/gopd/1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
@@ -4339,10 +4404,9 @@ packages:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
dev: true
- /growly/1.3.0:
- resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==}
+ /graphemer/1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
- optional: true
/hard-rejection/2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
@@ -4386,37 +4450,6 @@ packages:
has-symbols: 1.0.3
dev: true
- /has-value/0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
- engines: {node: '>=0.10.0'}
- dependencies:
- get-value: 2.0.6
- has-values: 0.1.4
- isobject: 2.1.0
- dev: true
-
- /has-value/1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- get-value: 2.0.6
- has-values: 1.0.0
- isobject: 3.0.1
- dev: true
-
- /has-values/0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /has-values/1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-number: 3.0.0
- kind-of: 4.0.0
- dev: true
-
/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
@@ -4435,75 +4468,82 @@ packages:
lru-cache: 6.0.0
dev: true
- /html-encoding-sniffer/2.0.1:
- resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==}
- engines: {node: '>=10'}
+ /html-encoding-sniffer/4.0.0:
+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
+ engines: {node: '>=18'}
dependencies:
- whatwg-encoding: 1.0.5
+ whatwg-encoding: 3.1.1
dev: true
/html-entities/2.3.3:
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
dev: true
- /html-escaper/2.0.2:
- resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
- dev: true
-
/html-tags/3.2.0:
resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==}
engines: {node: '>=8'}
dev: true
- /http-proxy-agent/4.0.1:
- resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
- engines: {node: '>= 6'}
+ /http-proxy-agent/7.0.0:
+ resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
+ engines: {node: '>= 14'}
dependencies:
- '@tootallnate/once': 1.1.2
- agent-base: 6.0.2
+ agent-base: 7.1.0
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
- /https-proxy-agent/5.0.1:
- resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
- engines: {node: '>= 6'}
+ /https-proxy-agent/7.0.2:
+ resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
+ engines: {node: '>= 14'}
dependencies:
- agent-base: 6.0.2
+ agent-base: 7.1.0
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
- /human-signals/1.1.1:
- resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
- engines: {node: '>=8.12.0'}
- dev: true
-
/human-signals/3.0.1:
resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
engines: {node: '>=12.20.0'}
dev: true
+ /human-signals/5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+ dev: true
+
/husky/8.0.3:
resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
engines: {node: '>=14'}
hasBin: true
dev: true
- /iconv-lite/0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ /iconv-lite/0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: true
+ /ignore-walk/5.0.1:
+ resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ minimatch: 5.1.6
+ dev: true
+
/ignore/5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
+ /ignore/5.3.0:
+ resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
+ engines: {node: '>= 4'}
+ dev: true
+
/import-fresh/3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -4512,15 +4552,6 @@ packages:
resolve-from: 4.0.0
dev: true
- /import-local/3.1.0:
- resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
- engines: {node: '>=8'}
- hasBin: true
- dependencies:
- pkg-dir: 4.2.0
- resolve-cwd: 3.0.0
- dev: true
-
/imurmurhash/0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -4560,20 +4591,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /is-accessor-descriptor/0.1.6:
- resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: true
-
- /is-accessor-descriptor/1.0.0:
- resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 6.0.3
- dev: true
-
/is-array-buffer/3.0.2:
resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
dependencies:
@@ -4600,10 +4617,6 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-buffer/1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
- dev: true
-
/is-builtin-module/3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
@@ -4616,33 +4629,12 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /is-ci/2.0.0:
- resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==}
- hasBin: true
- dependencies:
- ci-info: 2.0.0
- dev: true
-
/is-core-module/2.11.0:
resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
dependencies:
has: 1.0.3
dev: true
- /is-data-descriptor/0.1.4:
- resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: true
-
- /is-data-descriptor/1.0.0:
- resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 6.0.3
- dev: true
-
/is-date-object/1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
@@ -4650,50 +4642,13 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-descriptor/0.1.6:
- resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-accessor-descriptor: 0.1.6
- is-data-descriptor: 0.1.4
- kind-of: 5.1.0
- dev: true
-
- /is-descriptor/1.0.2:
- resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==}
+ /is-extglob/2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
- dependencies:
- is-accessor-descriptor: 1.0.0
- is-data-descriptor: 1.0.0
- kind-of: 6.0.3
dev: true
- /is-docker/2.2.1:
- resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
- engines: {node: '>=8'}
- hasBin: true
- dev: true
- optional: true
-
- /is-extendable/0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /is-extendable/1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-plain-object: 2.0.4
- dev: true
-
- /is-extglob/2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /is-fullwidth-code-point/3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ /is-fullwidth-code-point/3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
@@ -4702,11 +4657,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /is-generator-fn/2.1.0:
- resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
- engines: {node: '>=6'}
- dev: true
-
/is-glob/4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -4737,28 +4687,19 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-number/3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: true
-
/is-number/7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
- /is-plain-obj/1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- engines: {node: '>=0.10.0'}
+ /is-path-inside/3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
dev: true
- /is-plain-object/2.0.4:
- resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ /is-plain-obj/1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
dev: true
/is-potential-custom-element-name/1.0.1:
@@ -4785,16 +4726,6 @@ packages:
call-bind: 1.0.2
dev: true
- /is-stream/1.1.0:
- resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /is-stream/2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
- dev: true
-
/is-stream/3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -4825,10 +4756,6 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-typedarray/1.0.0:
- resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
- dev: true
-
/is-unicode-supported/0.1.0:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
@@ -4840,56 +4767,15 @@ packages:
call-bind: 1.0.2
dev: true
- /is-windows/1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /is-wsl/2.2.0:
- resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
- engines: {node: '>=8'}
- dependencies:
- is-docker: 2.2.1
- dev: true
- optional: true
-
- /isarray/1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
- dev: true
-
/isexe/2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
- /isobject/2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isarray: 1.0.0
- dev: true
-
- /isobject/3.0.1:
- resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/istanbul-lib-coverage/3.2.0:
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
engines: {node: '>=8'}
dev: true
- /istanbul-lib-instrument/4.0.3:
- resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
- engines: {node: '>=8'}
- dependencies:
- '@babel/core': 7.21.0
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.0
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/istanbul-lib-instrument/5.2.1:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
@@ -4898,112 +4784,15 @@ packages:
'@babel/parser': 7.21.2
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /istanbul-lib-report/3.0.0:
- resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
- engines: {node: '>=8'}
- dependencies:
- istanbul-lib-coverage: 3.2.0
- make-dir: 3.1.0
- supports-color: 7.2.0
- dev: true
-
- /istanbul-lib-source-maps/4.0.1:
- resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
- engines: {node: '>=10'}
- dependencies:
- debug: 4.3.4
- istanbul-lib-coverage: 3.2.0
- source-map: 0.6.1
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /istanbul-reports/3.1.5:
- resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
- engines: {node: '>=8'}
- dependencies:
- html-escaper: 2.0.2
- istanbul-lib-report: 3.0.0
- dev: true
-
/javascript-natural-sort/0.7.1:
resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==}
dev: true
- /jest-changed-files/26.6.2:
- resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- execa: 4.1.0
- throat: 5.0.0
- dev: true
-
- /jest-cli/26.6.3:
- resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==}
- engines: {node: '>= 10.14.2'}
- hasBin: true
- dependencies:
- '@jest/core': 26.6.3
- '@jest/test-result': 26.6.2
- '@jest/types': 26.6.2
- chalk: 4.1.2
- exit: 0.1.2
- graceful-fs: 4.2.10
- import-local: 3.1.0
- is-ci: 2.0.0
- jest-config: 26.6.3
- jest-util: 26.6.2
- jest-validate: 26.6.2
- prompts: 2.4.2
- yargs: 15.4.1
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /jest-config/26.6.3:
- resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==}
- engines: {node: '>= 10.14.2'}
- peerDependencies:
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- ts-node:
- optional: true
- dependencies:
- '@babel/core': 7.21.0
- '@jest/test-sequencer': 26.6.3
- '@jest/types': 26.6.2
- babel-jest: 26.6.3_@babel+core@7.21.0
- chalk: 4.1.2
- deepmerge: 4.3.0
- glob: 7.2.3
- graceful-fs: 4.2.10
- jest-environment-jsdom: 26.6.2
- jest-environment-node: 26.6.2
- jest-get-type: 26.3.0
- jest-jasmine2: 26.6.3
- jest-regex-util: 26.0.0
- jest-resolve: 26.6.2
- jest-util: 26.6.2
- jest-validate: 26.6.2
- micromatch: 4.0.5
- pretty-format: 26.6.2
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - utf-8-validate
- dev: true
-
/jest-diff/26.6.2:
resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==}
engines: {node: '>= 10.14.2'}
@@ -5014,82 +4803,11 @@ packages:
pretty-format: 26.6.2
dev: true
- /jest-docblock/26.0.0:
- resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- detect-newline: 3.1.0
- dev: true
-
- /jest-each/26.6.2:
- resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- chalk: 4.1.2
- jest-get-type: 26.3.0
- jest-util: 26.6.2
- pretty-format: 26.6.2
- dev: true
-
- /jest-environment-jsdom/26.6.2:
- resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/environment': 26.6.2
- '@jest/fake-timers': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- jest-mock: 26.6.2
- jest-util: 26.6.2
- jsdom: 16.7.0
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - utf-8-validate
- dev: true
-
- /jest-environment-node/26.6.2:
- resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/environment': 26.6.2
- '@jest/fake-timers': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- jest-mock: 26.6.2
- jest-util: 26.6.2
- dev: true
-
/jest-get-type/26.3.0:
resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==}
engines: {node: '>= 10.14.2'}
dev: true
- /jest-haste-map/26.6.2:
- resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- '@types/graceful-fs': 4.1.6
- '@types/node': 18.14.4
- anymatch: 3.1.3
- fb-watchman: 2.0.2
- graceful-fs: 4.2.10
- jest-regex-util: 26.0.0
- jest-serializer: 26.6.2
- jest-util: 26.6.2
- jest-worker: 26.6.2
- micromatch: 4.0.5
- sane: 4.1.0
- walker: 1.0.8
- optionalDependencies:
- fsevents: 2.3.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/jest-haste-map/29.4.3:
resolution: {integrity: sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -5106,95 +4824,7 @@ packages:
micromatch: 4.0.5
walker: 1.0.8
optionalDependencies:
- fsevents: 2.3.2
- dev: true
-
- /jest-jasmine2/26.6.3:
- resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@babel/traverse': 7.21.2
- '@jest/environment': 26.6.2
- '@jest/source-map': 26.6.2
- '@jest/test-result': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- chalk: 4.1.2
- co: 4.6.0
- expect: 26.6.2
- is-generator-fn: 2.1.0
- jest-each: 26.6.2
- jest-matcher-utils: 26.6.2
- jest-message-util: 26.6.2
- jest-runtime: 26.6.3
- jest-snapshot: 26.6.2
- jest-util: 26.6.2
- pretty-format: 26.6.2
- throat: 5.0.0
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /jest-leak-detector/26.6.2:
- resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- jest-get-type: 26.3.0
- pretty-format: 26.6.2
- dev: true
-
- /jest-matcher-utils/26.6.2:
- resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- chalk: 4.1.2
- jest-diff: 26.6.2
- jest-get-type: 26.3.0
- pretty-format: 26.6.2
- dev: true
-
- /jest-message-util/26.6.2:
- resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@babel/code-frame': 7.18.6
- '@jest/types': 26.6.2
- '@types/stack-utils': 2.0.1
- chalk: 4.1.2
- graceful-fs: 4.2.10
- micromatch: 4.0.5
- pretty-format: 26.6.2
- slash: 3.0.0
- stack-utils: 2.0.6
- dev: true
-
- /jest-mock/26.6.2:
- resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- dev: true
-
- /jest-pnp-resolver/1.2.3_jest-resolve@26.6.2:
- resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
- engines: {node: '>=6'}
- peerDependencies:
- jest-resolve: '*'
- peerDependenciesMeta:
- jest-resolve:
- optional: true
- dependencies:
- jest-resolve: 26.6.2
- dev: true
-
- /jest-regex-util/26.0.0:
- resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==}
- engines: {node: '>= 10.14.2'}
+ fsevents: 2.3.3
dev: true
/jest-regex-util/29.4.3:
@@ -5202,191 +4832,16 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
- /jest-resolve-dependencies/26.6.3:
- resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- jest-regex-util: 26.0.0
- jest-snapshot: 26.6.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /jest-resolve/26.6.2:
- resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- chalk: 4.1.2
- graceful-fs: 4.2.10
- jest-pnp-resolver: 1.2.3_jest-resolve@26.6.2
- jest-util: 26.6.2
- read-pkg-up: 7.0.1
- resolve: 1.22.1
- slash: 3.0.0
- dev: true
-
- /jest-runner/26.6.3:
- resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/console': 26.6.2
- '@jest/environment': 26.6.2
- '@jest/test-result': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- chalk: 4.1.2
- emittery: 0.7.2
- exit: 0.1.2
- graceful-fs: 4.2.10
- jest-config: 26.6.3
- jest-docblock: 26.0.0
- jest-haste-map: 26.6.2
- jest-leak-detector: 26.6.2
- jest-message-util: 26.6.2
- jest-resolve: 26.6.2
- jest-runtime: 26.6.3
- jest-util: 26.6.2
- jest-worker: 26.6.2
- source-map-support: 0.5.21
- throat: 5.0.0
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /jest-runtime/26.6.3:
- resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==}
- engines: {node: '>= 10.14.2'}
- hasBin: true
- dependencies:
- '@jest/console': 26.6.2
- '@jest/environment': 26.6.2
- '@jest/fake-timers': 26.6.2
- '@jest/globals': 26.6.2
- '@jest/source-map': 26.6.2
- '@jest/test-result': 26.6.2
- '@jest/transform': 26.6.2
- '@jest/types': 26.6.2
- '@types/yargs': 15.0.15
- chalk: 4.1.2
- cjs-module-lexer: 0.6.0
- collect-v8-coverage: 1.0.1
- exit: 0.1.2
- glob: 7.2.3
- graceful-fs: 4.2.10
- jest-config: 26.6.3
- jest-haste-map: 26.6.2
- jest-message-util: 26.6.2
- jest-mock: 26.6.2
- jest-regex-util: 26.0.0
- jest-resolve: 26.6.2
- jest-snapshot: 26.6.2
- jest-util: 26.6.2
- jest-validate: 26.6.2
- slash: 3.0.0
- strip-bom: 4.0.0
- yargs: 15.4.1
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
- /jest-serializer/26.6.2:
- resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@types/node': 18.14.4
- graceful-fs: 4.2.10
- dev: true
-
- /jest-snapshot/26.6.2:
- resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@babel/types': 7.21.2
- '@jest/types': 26.6.2
- '@types/babel__traverse': 7.18.3
- '@types/prettier': 2.7.2
- chalk: 4.1.2
- expect: 26.6.2
- graceful-fs: 4.2.10
- jest-diff: 26.6.2
- jest-get-type: 26.3.0
- jest-haste-map: 26.6.2
- jest-matcher-utils: 26.6.2
- jest-message-util: 26.6.2
- jest-resolve: 26.6.2
- natural-compare: 1.4.0
- pretty-format: 26.6.2
- semver: 7.3.8
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /jest-util/26.6.2:
- resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- chalk: 4.1.2
- graceful-fs: 4.2.10
- is-ci: 2.0.0
- micromatch: 4.0.5
- dev: true
-
/jest-util/29.4.3:
resolution: {integrity: sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- dependencies:
- '@jest/types': 29.4.3
- '@types/node': 18.14.4
- chalk: 4.1.2
- ci-info: 3.8.0
- graceful-fs: 4.2.10
- picomatch: 2.3.1
- dev: true
-
- /jest-validate/26.6.2:
- resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/types': 26.6.2
- camelcase: 6.3.0
- chalk: 4.1.2
- jest-get-type: 26.3.0
- leven: 3.1.0
- pretty-format: 26.6.2
- dev: true
-
- /jest-watcher/26.6.2:
- resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==}
- engines: {node: '>= 10.14.2'}
- dependencies:
- '@jest/test-result': 26.6.2
- '@jest/types': 26.6.2
- '@types/node': 18.14.4
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- jest-util: 26.6.2
- string-length: 4.0.2
- dev: true
-
- /jest-worker/26.6.2:
- resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
- engines: {node: '>= 10.13.0'}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
+ '@jest/types': 29.4.3
'@types/node': 18.14.4
- merge-stream: 2.0.0
- supports-color: 7.2.0
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ graceful-fs: 4.2.10
+ picomatch: 2.3.1
dev: true
/jest-worker/29.4.3:
@@ -5399,22 +4854,6 @@ packages:
supports-color: 8.1.1
dev: true
- /jest/26.6.3:
- resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==}
- engines: {node: '>= 10.14.2'}
- hasBin: true
- dependencies:
- '@jest/core': 26.6.3
- import-local: 3.1.0
- jest-cli: 26.6.3
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - supports-color
- - ts-node
- - utf-8-validate
- dev: true
-
/js-tokens/4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
@@ -5434,42 +4873,36 @@ packages:
argparse: 2.0.1
dev: true
- /jsdom/16.7.0:
- resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==}
- engines: {node: '>=10'}
+ /jsdom/23.0.1:
+ resolution: {integrity: sha512-2i27vgvlUsGEBO9+/kJQRbtqtm+191b5zAZrU/UezVmnC2dlDAFLgDYJvAEi94T4kjsRKkezEtLQTgsNEsW2lQ==}
+ engines: {node: '>=18'}
peerDependencies:
- canvas: ^2.5.0
+ canvas: ^2.11.2
peerDependenciesMeta:
canvas:
optional: true
dependencies:
- abab: 2.0.6
- acorn: 8.8.2
- acorn-globals: 6.0.0
- cssom: 0.4.4
- cssstyle: 2.3.0
- data-urls: 2.0.0
+ cssstyle: 3.0.0
+ data-urls: 5.0.0
decimal.js: 10.4.3
- domexception: 2.0.1
- escodegen: 2.0.0
- form-data: 3.0.1
- html-encoding-sniffer: 2.0.1
- http-proxy-agent: 4.0.1
- https-proxy-agent: 5.0.1
+ form-data: 4.0.0
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.0
+ https-proxy-agent: 7.0.2
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.2
- parse5: 6.0.1
- saxes: 5.0.1
+ nwsapi: 2.2.7
+ parse5: 7.1.2
+ rrweb-cssom: 0.6.0
+ saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.2
- w3c-hr-time: 1.0.2
- w3c-xmlserializer: 2.0.0
- webidl-conversions: 6.1.0
- whatwg-encoding: 1.0.5
- whatwg-mimetype: 2.3.0
- whatwg-url: 8.7.0
- ws: 7.5.9
- xml-name-validator: 3.0.0
+ tough-cookie: 4.1.3
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.0.0
+ ws: 8.15.1
+ xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -5517,6 +4950,10 @@ packages:
hasBin: true
dev: true
+ /jsonc-parser/3.2.0:
+ resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ dev: true
+
/jsonfile/6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
@@ -5537,35 +4974,11 @@ packages:
resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==}
dev: true
- /kind-of/3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-buffer: 1.1.6
- dev: true
-
- /kind-of/4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-buffer: 1.1.6
- dev: true
-
- /kind-of/5.1.0:
- resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/kind-of/6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
dev: true
- /kleur/3.0.3:
- resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
- engines: {node: '>=6'}
- dev: true
-
/known-css-properties/0.24.0:
resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==}
dev: true
@@ -5580,19 +4993,6 @@ packages:
language-subtag-registry: 0.3.22
dev: true
- /leven/3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
- dev: true
-
- /levn/0.3.0:
- resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
- engines: {node: '>= 0.8.0'}
- dependencies:
- prelude-ls: 1.1.2
- type-check: 0.3.2
- dev: true
-
/levn/0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -5652,6 +5052,14 @@ packages:
wrap-ansi: 7.0.0
dev: true
+ /local-pkg/0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
+ engines: {node: '>=14'}
+ dependencies:
+ mlly: 1.4.2
+ pkg-types: 1.0.3
+ dev: true
+
/locate-path/3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
@@ -5711,6 +5119,12 @@ packages:
js-tokens: 4.0.0
dev: true
+ /loupe/2.3.7:
+ resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+ dependencies:
+ get-func-name: 2.0.2
+ dev: true
+
/lru-cache/5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -5736,15 +5150,18 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
+ /magic-string/0.30.5:
+ resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
/make-dir/3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
dependencies:
- semver: 6.3.0
- dev: true
-
- /make-error/1.3.6:
- resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+ semver: 6.3.1
dev: true
/makeerror/1.0.12:
@@ -5753,11 +5170,6 @@ packages:
tmpl: 1.0.5
dev: true
- /map-cache/0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/map-obj/1.0.1:
resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
engines: {node: '>=0.10.0'}
@@ -5768,11 +5180,29 @@ packages:
engines: {node: '>=8'}
dev: true
- /map-visit/1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
- engines: {node: '>=0.10.0'}
+ /map-stream/0.1.0:
+ resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==}
+ dev: true
+
+ /marked-terminal/6.2.0_marked@9.1.6:
+ resolution: {integrity: sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ marked: '>=1 <12'
dependencies:
- object-visit: 1.0.1
+ ansi-escapes: 6.2.0
+ cardinal: 2.1.1
+ chalk: 5.3.0
+ cli-table3: 0.6.3
+ marked: 9.1.6
+ node-emoji: 2.1.3
+ supports-hyperlinks: 3.0.0
+ dev: true
+
+ /marked/9.1.6:
+ resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==}
+ engines: {node: '>= 16'}
+ hasBin: true
dev: true
/meow/9.0.0:
@@ -5802,27 +5232,6 @@ packages:
engines: {node: '>= 8'}
dev: true
- /micromatch/3.1.10:
- resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- braces: 2.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- extglob: 2.0.4
- fragment-cache: 0.2.1
- kind-of: 6.0.3
- nanomatch: 1.2.13
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/micromatch/4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
@@ -5884,18 +5293,18 @@ packages:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
- /mixin-deep/1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
- engines: {node: '>=0.10.0'}
+ /mlly/1.4.2:
+ resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
dependencies:
- for-in: 1.0.2
- is-extendable: 1.0.1
+ acorn: 8.11.2
+ pathe: 1.1.1
+ pkg-types: 1.0.3
+ ufo: 1.3.2
dev: true
- /mkdirp/1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
+ /mri/1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
dev: true
/ms/2.0.0:
@@ -5906,23 +5315,10 @@ packages:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
- /nanomatch/1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- fragment-cache: 0.2.1
- is-windows: 1.0.2
- kind-of: 6.0.3
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
+ /nanoid/3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
dev: true
/natural-compare-lite/1.4.0:
@@ -5933,26 +5329,33 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
- /nice-try/1.0.5:
- resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+ /node-domexception/1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
dev: true
- /node-int64/0.4.0:
- resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+ /node-emoji/2.1.3:
+ resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ char-regex: 1.0.2
+ emojilib: 2.4.0
+ skin-tone: 2.0.0
dev: true
- /node-notifier/8.0.2:
- resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==}
- requiresBuild: true
+ /node-fetch/3.3.1:
+ resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
- growly: 1.3.0
- is-wsl: 2.2.0
- semver: 7.3.8
- shellwords: 0.1.1
- uuid: 8.3.2
- which: 2.0.2
+ data-uri-to-buffer: 4.0.1
+ fetch-blob: 3.2.0
+ formdata-polyfill: 4.0.10
+ dev: true
+
+ /node-int64/0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
dev: true
- optional: true
/node-releases/2.0.10:
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
@@ -5963,7 +5366,7 @@ packages:
dependencies:
hosted-git-info: 2.8.9
resolve: 1.22.1
- semver: 5.7.1
+ semver: 5.7.2
validate-npm-package-license: 3.0.4
dev: true
@@ -5973,34 +5376,36 @@ packages:
dependencies:
hosted-git-info: 4.1.0
is-core-module: 2.11.0
- semver: 7.3.8
+ semver: 7.5.4
validate-npm-package-license: 3.0.4
dev: true
- /normalize-path/2.1.1:
- resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
- engines: {node: '>=0.10.0'}
- dependencies:
- remove-trailing-separator: 1.1.0
- dev: true
-
/normalize-path/3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
- /npm-run-path/2.0.2:
- resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
- engines: {node: '>=4'}
+ /npm-bundled/2.0.1:
+ resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
dependencies:
- path-key: 2.0.1
+ npm-normalize-package-bin: 2.0.0
dev: true
- /npm-run-path/4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
+ /npm-normalize-package-bin/2.0.0:
+ resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dev: true
+
+ /npm-packlist/5.1.3:
+ resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ hasBin: true
dependencies:
- path-key: 3.1.1
+ glob: 8.1.0
+ ignore-walk: 5.0.1
+ npm-bundled: 2.0.1
+ npm-normalize-package-bin: 2.0.0
dev: true
/npm-run-path/5.1.0:
@@ -6016,8 +5421,8 @@ packages:
boolbase: 1.0.0
dev: true
- /nwsapi/2.2.2:
- resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
+ /nwsapi/2.2.7:
+ resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
dev: true
/object-assign/4.1.1:
@@ -6025,15 +5430,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /object-copy/0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- copy-descriptor: 0.1.1
- define-property: 0.2.5
- kind-of: 3.2.2
- dev: true
-
/object-inspect/1.12.3:
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
dev: true
@@ -6043,13 +5439,6 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /object-visit/1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
- dev: true
-
/object.assign/4.1.4:
resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
engines: {node: '>= 0.4'}
@@ -6085,13 +5474,6 @@ packages:
es-abstract: 1.21.1
dev: true
- /object.pick/1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
- dev: true
-
/object.values/1.1.6:
resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
engines: {node: '>= 0.4'}
@@ -6121,38 +5503,16 @@ packages:
mimic-fn: 4.0.0
dev: true
- /optionator/0.8.3:
- resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
- engines: {node: '>= 0.8.0'}
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.3.0
- prelude-ls: 1.1.2
- type-check: 0.3.2
- word-wrap: 1.2.3
- dev: true
-
- /optionator/0.9.1:
- resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ /optionator/0.9.3:
+ resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
dependencies:
+ '@aashutoshrathi/word-wrap': 1.2.6
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
- word-wrap: 1.2.3
- dev: true
-
- /p-each-series/2.2.0:
- resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==}
- engines: {node: '>=8'}
- dev: true
-
- /p-finally/1.0.0:
- resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
- engines: {node: '>=4'}
dev: true
/p-limit/2.3.0:
@@ -6169,6 +5529,13 @@ packages:
yocto-queue: 0.1.0
dev: true
+ /p-limit/5.0.0:
+ resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ yocto-queue: 1.0.0
+ dev: true
+
/p-locate/3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
engines: {node: '>=6'}
@@ -6224,13 +5591,10 @@ packages:
engines: {node: '>=12'}
dev: true
- /parse5/6.0.1:
- resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
- dev: true
-
- /pascalcase/0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
- engines: {node: '>=0.10.0'}
+ /parse5/7.1.2:
+ resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ dependencies:
+ entities: 4.5.0
dev: true
/path-exists/3.0.0:
@@ -6248,11 +5612,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /path-key/2.0.1:
- resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
- engines: {node: '>=4'}
- dev: true
-
/path-key/3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
@@ -6272,6 +5631,20 @@ packages:
engines: {node: '>=8'}
dev: true
+ /pathe/1.1.1:
+ resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
+ dev: true
+
+ /pathval/1.1.1:
+ resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
+ dev: true
+
+ /pause-stream/0.0.11:
+ resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==}
+ dependencies:
+ through: 2.3.8
+ dev: true
+
/picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
@@ -6299,6 +5672,14 @@ packages:
find-up: 4.1.0
dev: true
+ /pkg-types/1.0.3:
+ resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
+ dependencies:
+ jsonc-parser: 3.2.0
+ mlly: 1.4.2
+ pathe: 1.1.1
+ dev: true
+
/pkg-up/3.1.0:
resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
engines: {node: '>=8'}
@@ -6318,11 +5699,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /posix-character-classes/0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/postcss-selector-parser/6.0.11:
resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
engines: {node: '>=4'}
@@ -6331,9 +5707,13 @@ packages:
util-deprecate: 1.0.2
dev: true
- /prelude-ls/1.1.2:
- resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
- engines: {node: '>= 0.8.0'}
+ /postcss/8.4.32:
+ resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
dev: true
/prelude-ls/1.2.1:
@@ -6370,6 +5750,15 @@ packages:
react-is: 17.0.2
dev: true
+ /pretty-format/29.7.0:
+ resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
+ dev: true
+
/pretty-ms/8.0.0:
resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==}
engines: {node: '>=14.16'}
@@ -6377,14 +5766,6 @@ packages:
parse-ms: 3.0.0
dev: true
- /prompts/2.4.2:
- resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
- engines: {node: '>= 6'}
- dependencies:
- kleur: 3.0.3
- sisteransi: 1.0.5
- dev: true
-
/prop-types/15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
dependencies:
@@ -6393,15 +5774,26 @@ packages:
react-is: 16.13.1
dev: true
+ /ps-tree/1.2.0:
+ resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==}
+ engines: {node: '>= 0.10'}
+ hasBin: true
+ dependencies:
+ event-stream: 3.3.4
+ dev: true
+
/psl/1.9.0:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
dev: true
- /pump/3.0.0:
- resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ /publint/0.2.6:
+ resolution: {integrity: sha512-zMwDVwrlLnCsviDXlczhuc5nIljsjZUgbLeKNyMYqbIJLRhcW81xrKsHlEu21YUaIxpa8T66tdIqP0mZm9ym3A==}
+ engines: {node: '>=16'}
+ hasBin: true
dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
+ npm-packlist: 5.1.3
+ picocolors: 1.0.0
+ sade: 1.8.1
dev: true
/punycode/2.3.0:
@@ -6409,6 +5801,11 @@ packages:
engines: {node: '>=6'}
dev: true
+ /punycode/2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+ dev: true
+
/querystringify/2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
dev: true
@@ -6428,15 +5825,14 @@ packages:
safe-buffer: 5.2.1
dev: true
- /react-dom/17.0.2_react@17.0.2:
- resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==}
+ /react-dom/18.2.0_react@18.2.0:
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
- react: 17.0.2
+ react: ^18.2.0
dependencies:
loose-envify: 1.4.0
- object-assign: 4.1.1
- react: 17.0.2
- scheduler: 0.20.2
+ react: 18.2.0
+ scheduler: 0.23.0
dev: true
/react-is/16.13.1:
@@ -6447,12 +5843,15 @@ packages:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
- /react/17.0.2:
- resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==}
+ /react-is/18.2.0:
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ dev: true
+
+ /react/18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
dependencies:
loose-envify: 1.4.0
- object-assign: 4.1.1
dev: true
/read-pkg-up/7.0.1:
@@ -6482,6 +5881,12 @@ packages:
strip-indent: 3.0.0
dev: true
+ /redeyed/2.1.1:
+ resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==}
+ dependencies:
+ esprima: 4.0.1
+ dev: true
+
/regenerate-unicode-properties/10.1.0:
resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
engines: {node: '>=4'}
@@ -6503,14 +5908,6 @@ packages:
'@babel/runtime': 7.21.0
dev: true
- /regex-not/1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 3.0.2
- safe-regex: 1.1.0
- dev: true
-
/regexp-tree/0.1.24:
resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==}
hasBin: true
@@ -6525,11 +5922,6 @@ packages:
functions-have-names: 1.2.3
dev: true
- /regexpp/3.2.0:
- resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
- engines: {node: '>=8'}
- dev: true
-
/regexpu-core/5.3.1:
resolution: {integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==}
engines: {node: '>=4'}
@@ -6549,29 +5941,6 @@ packages:
jsesc: 0.5.0
dev: true
- /remove-trailing-separator/1.1.0:
- resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
- dev: true
-
- /repeat-element/1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /repeat-string/1.6.1:
- resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
- engines: {node: '>=0.10'}
- dev: true
-
- /require-directory/2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /require-main-filename/2.0.0:
- resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
- dev: true
-
/requires-port/1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
dev: true
@@ -6580,13 +5949,6 @@ packages:
resolution: {integrity: sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==}
dev: true
- /resolve-cwd/3.0.0:
- resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
- engines: {node: '>=8'}
- dependencies:
- resolve-from: 5.0.0
- dev: true
-
/resolve-from/4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -6597,11 +5959,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /resolve-url/0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
- deprecated: https://github.com/lydell/resolve-url#deprecated
- dev: true
-
/resolve/1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
@@ -6628,11 +5985,6 @@ packages:
signal-exit: 3.0.7
dev: true
- /ret/0.1.15:
- resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
- engines: {node: '>=0.12'}
- dev: true
-
/reusify/1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -6649,7 +6001,7 @@ packages:
glob: 7.2.3
dev: true
- /rollup-plugin-typescript2/0.34.1_fn2onl6nbsljlgjr3jlzr6w7we:
+ /rollup-plugin-typescript2/0.34.1_vjug3yta6lblqnvu3zjesxy34m:
resolution: {integrity: sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw==}
peerDependencies:
rollup: '>=1.26.3'
@@ -6661,7 +6013,7 @@ packages:
rollup: 3.18.0
semver: 7.3.8
tslib: 2.5.0
- typescript: 4.9.5
+ typescript: 5.3.3
dev: true
/rollup/3.18.0:
@@ -6669,12 +6021,32 @@ packages:
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
- fsevents: 2.3.2
+ fsevents: 2.3.3
dev: true
- /rsvp/4.8.5:
- resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==}
- engines: {node: 6.* || >= 7.*}
+ /rollup/4.9.0:
+ resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.9.0
+ '@rollup/rollup-android-arm64': 4.9.0
+ '@rollup/rollup-darwin-arm64': 4.9.0
+ '@rollup/rollup-darwin-x64': 4.9.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.9.0
+ '@rollup/rollup-linux-arm64-gnu': 4.9.0
+ '@rollup/rollup-linux-arm64-musl': 4.9.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.9.0
+ '@rollup/rollup-linux-x64-gnu': 4.9.0
+ '@rollup/rollup-linux-x64-musl': 4.9.0
+ '@rollup/rollup-win32-arm64-msvc': 4.9.0
+ '@rollup/rollup-win32-ia32-msvc': 4.9.0
+ '@rollup/rollup-win32-x64-msvc': 4.9.0
+ fsevents: 2.3.3
+ dev: true
+
+ /rrweb-cssom/0.6.0:
+ resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
dev: true
/run-parallel/1.2.0:
@@ -6686,7 +6058,14 @@ packages:
/rxjs/7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
- tslib: 2.5.0
+ tslib: 2.6.2
+ dev: true
+
+ /sade/1.8.1:
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ mri: 1.2.0
dev: true
/safe-buffer/5.2.1:
@@ -6701,12 +6080,6 @@ packages:
is-regex: 1.1.4
dev: true
- /safe-regex/1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
- dependencies:
- ret: 0.1.15
- dev: true
-
/safe-regex/2.1.1:
resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
dependencies:
@@ -6717,41 +6090,21 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /sane/4.1.0:
- resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==}
- engines: {node: 6.* || 8.* || >= 10.*}
- deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
- hasBin: true
- dependencies:
- '@cnakazawa/watch': 1.0.4
- anymatch: 2.0.0
- capture-exit: 2.0.0
- exec-sh: 0.3.6
- execa: 1.0.0
- fb-watchman: 2.0.2
- micromatch: 3.1.10
- minimist: 1.2.8
- walker: 1.0.8
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /saxes/5.0.1:
- resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
- engines: {node: '>=10'}
+ /saxes/6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
dependencies:
xmlchars: 2.2.0
dev: true
- /scheduler/0.20.2:
- resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==}
+ /scheduler/0.23.0:
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
dependencies:
loose-envify: 1.4.0
- object-assign: 4.1.1
dev: true
- /semver/5.7.1:
- resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ /semver/5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
dev: true
@@ -6760,6 +6113,11 @@ packages:
hasBin: true
dev: true
+ /semver/6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ dev: true
+
/semver/7.3.8:
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
engines: {node: '>=10'}
@@ -6768,31 +6126,18 @@ packages:
lru-cache: 6.0.0
dev: true
- /serialize-javascript/6.0.1:
- resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
- dependencies:
- randombytes: 2.1.0
- dev: true
-
- /set-blocking/2.0.0:
- resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
- dev: true
-
- /set-value/2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
- engines: {node: '>=0.10.0'}
+ /semver/7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
dependencies:
- extend-shallow: 2.0.1
- is-extendable: 0.1.1
- is-plain-object: 2.0.4
- split-string: 3.1.0
+ lru-cache: 6.0.0
dev: true
- /shebang-command/1.2.0:
- resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
- engines: {node: '>=0.10.0'}
+ /serialize-javascript/6.0.1:
+ resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
dependencies:
- shebang-regex: 1.0.0
+ randombytes: 2.1.0
dev: true
/shebang-command/2.0.0:
@@ -6802,21 +6147,11 @@ packages:
shebang-regex: 3.0.0
dev: true
- /shebang-regex/1.0.0:
- resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/shebang-regex/3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
dev: true
- /shellwords/0.1.1:
- resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
- dev: true
- optional: true
-
/side-channel/1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
@@ -6825,12 +6160,24 @@ packages:
object-inspect: 1.12.3
dev: true
+ /siginfo/2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+ dev: true
+
/signal-exit/3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
- /sisteransi/1.0.5:
- resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+ /signal-exit/4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /skin-tone/2.0.0:
+ resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==}
+ engines: {node: '>=8'}
+ dependencies:
+ unicode-emoji-modifier-base: 1.0.0
dev: true
/slash/3.0.0:
@@ -6838,6 +6185,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /slash/4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+ dev: true
+
/slice-ansi/3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -6868,47 +6220,9 @@ packages:
resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==}
dev: true
- /snapdragon-node/2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- define-property: 1.0.0
- isobject: 3.0.1
- snapdragon-util: 3.0.1
- dev: true
-
- /snapdragon-util/3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: true
-
- /snapdragon/0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
- dependencies:
- base: 0.11.2
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- map-cache: 0.2.2
- source-map: 0.5.7
- source-map-resolve: 0.5.3
- use: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /source-map-resolve/0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
- dependencies:
- atob: 2.1.2
- decode-uri-component: 0.2.2
- resolve-url: 0.2.1
- source-map-url: 0.4.1
- urix: 0.1.0
dev: true
/source-map-support/0.5.21:
@@ -6918,11 +6232,6 @@ packages:
source-map: 0.6.1
dev: true
- /source-map-url/0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
- dev: true
-
/source-map/0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
@@ -6933,11 +6242,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /source-map/0.7.4:
- resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
- engines: {node: '>= 8'}
- dev: true
-
/spdx-correct/3.1.1:
resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
dependencies:
@@ -6960,30 +6264,28 @@ packages:
resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
dev: true
- /split-string/3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
- engines: {node: '>=0.10.0'}
+ /split/0.3.3:
+ resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==}
dependencies:
- extend-shallow: 3.0.2
+ through: 2.3.8
dev: true
/sprintf-js/1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true
- /stack-utils/2.0.6:
- resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
- engines: {node: '>=10'}
- dependencies:
- escape-string-regexp: 2.0.0
+ /stackback/0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
- /static-extend/0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
- engines: {node: '>=0.10.0'}
+ /std-env/3.6.0:
+ resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==}
+ dev: true
+
+ /stream-combiner/0.0.4:
+ resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==}
dependencies:
- define-property: 0.2.5
- object-copy: 0.1.0
+ duplexer: 0.1.2
dev: true
/string-argv/0.3.1:
@@ -6991,14 +6293,6 @@ packages:
engines: {node: '>=0.6.19'}
dev: true
- /string-length/4.0.2:
- resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
- engines: {node: '>=10'}
- dependencies:
- char-regex: 1.0.2
- strip-ansi: 6.0.1
- dev: true
-
/string-width/4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -7065,21 +6359,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /strip-bom/4.0.0:
- resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
- engines: {node: '>=8'}
- dev: true
-
- /strip-eof/1.0.0:
- resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /strip-final-newline/2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
- dev: true
-
/strip-final-newline/3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
@@ -7097,6 +6376,12 @@ packages:
engines: {node: '>=8'}
dev: true
+ /strip-literal/1.3.0:
+ resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
+ dependencies:
+ acorn: 8.11.2
+ dev: true
+
/style-to-object/0.3.0:
resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
dependencies:
@@ -7132,6 +6417,14 @@ packages:
supports-color: 7.2.0
dev: true
+ /supports-hyperlinks/3.0.0:
+ resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==}
+ engines: {node: '>=14.18'}
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+ dev: true
+
/supports-preserve-symlinks-flag/1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -7146,14 +6439,6 @@ packages:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true
- /terminal-link/2.1.1:
- resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
- engines: {node: '>=8'}
- dependencies:
- ansi-escapes: 4.3.2
- supports-hyperlinks: 2.3.0
- dev: true
-
/terser/5.16.5:
resolution: {integrity: sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==}
engines: {node: '>=10'}
@@ -7178,14 +6463,24 @@ packages:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /throat/5.0.0:
- resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
- dev: true
-
/through/2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
dev: true
+ /tinybench/2.5.1:
+ resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==}
+ dev: true
+
+ /tinypool/0.8.1:
+ resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
+ /tinyspy/2.2.0:
+ resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
/tmpl/1.0.5:
resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
dev: true
@@ -7195,21 +6490,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /to-object-path/0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: true
-
- /to-regex-range/2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-number: 3.0.0
- repeat-string: 1.6.1
- dev: true
-
/to-regex-range/5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -7217,18 +6497,8 @@ packages:
is-number: 7.0.0
dev: true
- /to-regex/3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- define-property: 2.0.2
- extend-shallow: 3.0.2
- regex-not: 1.0.2
- safe-regex: 1.1.0
- dev: true
-
- /tough-cookie/4.1.2:
- resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==}
+ /tough-cookie/4.1.3:
+ resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
engines: {node: '>=6'}
dependencies:
psl: 1.9.0
@@ -7237,11 +6507,11 @@ packages:
url-parse: 1.5.10
dev: true
- /tr46/2.1.0:
- resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==}
- engines: {node: '>=8'}
+ /tr46/5.0.0:
+ resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
+ engines: {node: '>=18'}
dependencies:
- punycode: 2.3.0
+ punycode: 2.3.1
dev: true
/trim-newlines/3.0.1:
@@ -7249,26 +6519,17 @@ packages:
engines: {node: '>=8'}
dev: true
- /ts-jest/26.5.6_xuote2qreek47x2di7kesslrai:
- resolution: {integrity: sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==}
- engines: {node: '>= 10'}
+ /tsconfck/2.1.2_typescript@5.3.3:
+ resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==}
+ engines: {node: ^14.13.1 || ^16 || >=18}
hasBin: true
peerDependencies:
- jest: '>=26 <27'
- typescript: '>=3.8 <5.0'
+ typescript: ^4.3.5 || ^5.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
dependencies:
- bs-logger: 0.2.6
- buffer-from: 1.1.2
- fast-json-stable-stringify: 2.1.0
- jest: 26.6.3
- jest-util: 26.6.2
- json5: 2.2.3
- lodash: 4.17.21
- make-error: 1.3.6
- mkdirp: 1.0.4
- semver: 7.3.8
- typescript: 4.9.5
- yargs-parser: 20.2.9
+ typescript: 5.3.3
dev: true
/tsconfig-paths/3.14.2:
@@ -7301,21 +6562,18 @@ packages:
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
dev: true
- /tsutils/3.21.0_typescript@4.9.5:
+ /tslib/2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: true
+
+ /tsutils/3.21.0_typescript@5.3.3:
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
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'
dependencies:
tslib: 1.14.1
- typescript: 4.9.5
- dev: true
-
- /type-check/0.3.2:
- resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
- engines: {node: '>= 0.8.0'}
- dependencies:
- prelude-ls: 1.1.2
+ typescript: 5.3.3
dev: true
/type-check/0.4.0:
@@ -7355,6 +6613,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /type-fest/3.13.1:
+ resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
+ engines: {node: '>=14.16'}
+ dev: true
+
/typed-array-length/1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
@@ -7363,18 +6626,22 @@ packages:
is-typed-array: 1.1.10
dev: true
- /typedarray-to-buffer/3.1.5:
- resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
- dependencies:
- is-typedarray: 1.0.0
+ /typescript/5.3.2:
+ resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
dev: true
- /typescript/4.9.5:
- resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
- engines: {node: '>=4.2.0'}
+ /typescript/5.3.3:
+ resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
+ engines: {node: '>=14.17'}
hasBin: true
dev: true
+ /ufo/1.3.2:
+ resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
+ dev: true
+
/uglify-js/3.17.4:
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
engines: {node: '>=0.8.0'}
@@ -7390,11 +6657,20 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
+ /undici-types/5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ dev: true
+
/unicode-canonical-property-names-ecmascript/2.0.0:
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
engines: {node: '>=4'}
dev: true
+ /unicode-emoji-modifier-base/1.0.0:
+ resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
+ engines: {node: '>=4'}
+ dev: true
+
/unicode-match-property-ecmascript/2.0.0:
resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
engines: {node: '>=4'}
@@ -7413,16 +6689,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /union-value/1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-union: 3.1.0
- get-value: 2.0.6
- is-extendable: 0.1.1
- set-value: 2.0.1
- dev: true
-
/universalify/0.2.0:
resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
engines: {node: '>= 4.0.0'}
@@ -7433,14 +6699,6 @@ packages:
engines: {node: '>= 10.0.0'}
dev: true
- /unset-value/1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- has-value: 0.3.1
- isobject: 3.0.1
- dev: true
-
/update-browserslist-db/1.0.10_browserslist@4.21.5:
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
@@ -7458,11 +6716,6 @@ packages:
punycode: 2.3.0
dev: true
- /urix/0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
- deprecated: Please see https://github.com/lydell/urix#deprecated
- dev: true
-
/url-parse/1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
dependencies:
@@ -7470,61 +6723,173 @@ packages:
requires-port: 1.0.0
dev: true
- /use-sync-external-store/1.2.0_react@17.0.2:
+ /use-sync-external-store/1.2.0_react@18.2.0:
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- react: 17.0.2
- dev: true
-
- /use/3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
- engines: {node: '>=0.10.0'}
+ react: 18.2.0
dev: true
/util-deprecate/1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
- /uuid/8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
+ /validate-html-nesting/1.2.1:
+ resolution: {integrity: sha512-T1ab131NkP3BfXB7KUSgV7Rhu81R2id+L6NaJ7NypAAG5iV6gXnPpQE5RK1fvb+3JYsPTL+ihWna5sr5RN9gaQ==}
dev: true
- optional: true
- /v8-compile-cache/2.3.0:
- resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
+ /validate-npm-package-license/3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ dependencies:
+ spdx-correct: 3.1.1
+ spdx-expression-parse: 3.0.1
dev: true
- /v8-to-istanbul/7.1.2:
- resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==}
- engines: {node: '>=10.10.0'}
+ /validate-npm-package-name/5.0.0:
+ resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dependencies:
- '@types/istanbul-lib-coverage': 2.0.4
- convert-source-map: 1.9.0
- source-map: 0.7.4
+ builtins: 5.0.1
dev: true
- /validate-html-nesting/1.2.1:
- resolution: {integrity: sha512-T1ab131NkP3BfXB7KUSgV7Rhu81R2id+L6NaJ7NypAAG5iV6gXnPpQE5RK1fvb+3JYsPTL+ihWna5sr5RN9gaQ==}
+ /vite-node/1.0.4:
+ resolution: {integrity: sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.4
+ pathe: 1.1.1
+ picocolors: 1.0.0
+ vite: 5.0.10
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
dev: true
- /validate-npm-package-license/3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ /vite-tsconfig-paths/4.2.2_typescript@5.3.3:
+ resolution: {integrity: sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==}
+ peerDependencies:
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
dependencies:
- spdx-correct: 3.1.1
- spdx-expression-parse: 3.0.1
+ debug: 4.3.4
+ globrex: 0.1.2
+ tsconfck: 2.1.2_typescript@5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /vite/5.0.10:
+ resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.19.9
+ postcss: 8.4.32
+ rollup: 4.9.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /vitest/1.0.4_jsdom@23.0.1:
+ resolution: {integrity: sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': ^1.0.0
+ '@vitest/ui': ^1.0.0
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@vitest/expect': 1.0.4
+ '@vitest/runner': 1.0.4
+ '@vitest/snapshot': 1.0.4
+ '@vitest/spy': 1.0.4
+ '@vitest/utils': 1.0.4
+ acorn-walk: 8.3.1
+ cac: 6.7.14
+ chai: 4.3.10
+ debug: 4.3.4
+ execa: 8.0.1
+ jsdom: 23.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.5
+ pathe: 1.1.1
+ picocolors: 1.0.0
+ std-env: 3.6.0
+ strip-literal: 1.3.0
+ tinybench: 2.5.1
+ tinypool: 0.8.1
+ vite: 5.0.10
+ vite-node: 1.0.4
+ why-is-node-running: 2.2.2
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
dev: true
- /vue-eslint-parser/9.0.2_eslint@8.22.0:
+ /vue-eslint-parser/9.0.2_eslint@8.56.0:
resolution: {integrity: sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
- eslint: 8.22.0
+ eslint: 8.56.0
eslint-scope: 7.1.1
eslint-visitor-keys: 3.3.0
espree: 9.4.1
@@ -7535,18 +6900,11 @@ packages:
- supports-color
dev: true
- /w3c-hr-time/1.0.2:
- resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
- deprecated: Use your platform's native performance.now() and performance.timeOrigin.
- dependencies:
- browser-process-hrtime: 1.0.0
- dev: true
-
- /w3c-xmlserializer/2.0.0:
- resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==}
- engines: {node: '>=10'}
+ /w3c-xmlserializer/5.0.0:
+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
+ engines: {node: '>=18'}
dependencies:
- xml-name-validator: 3.0.0
+ xml-name-validator: 5.0.0
dev: true
/walker/1.0.8:
@@ -7555,33 +6913,39 @@ packages:
makeerror: 1.0.12
dev: true
- /webidl-conversions/5.0.0:
- resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
- engines: {node: '>=8'}
+ /web-streams-polyfill/3.2.1:
+ resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /webidl-conversions/7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
dev: true
- /webidl-conversions/6.1.0:
- resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==}
- engines: {node: '>=10.4'}
+ /webpod/0.0.2:
+ resolution: {integrity: sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==}
+ hasBin: true
dev: true
- /whatwg-encoding/1.0.5:
- resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==}
+ /whatwg-encoding/3.1.1:
+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
+ engines: {node: '>=18'}
dependencies:
- iconv-lite: 0.4.24
+ iconv-lite: 0.6.3
dev: true
- /whatwg-mimetype/2.3.0:
- resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==}
+ /whatwg-mimetype/4.0.0:
+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
+ engines: {node: '>=18'}
dev: true
- /whatwg-url/8.7.0:
- resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==}
- engines: {node: '>=10'}
+ /whatwg-url/14.0.0:
+ resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
+ engines: {node: '>=18'}
dependencies:
- lodash: 4.17.21
- tr46: 2.1.0
- webidl-conversions: 6.1.0
+ tr46: 5.0.0
+ webidl-conversions: 7.0.0
dev: true
/which-boxed-primitive/1.0.2:
@@ -7594,10 +6958,6 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-module/2.0.0:
- resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}
- dev: true
-
/which-typed-array/1.1.9:
resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
engines: {node: '>= 0.4'}
@@ -7610,24 +6970,29 @@ packages:
is-typed-array: 1.1.10
dev: true
- /which/1.3.1:
- resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ /which/2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
hasBin: true
dependencies:
isexe: 2.0.0
dev: true
- /which/2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
+ /which/3.0.1:
+ resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
hasBin: true
dependencies:
isexe: 2.0.0
dev: true
- /word-wrap/1.2.3:
- resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
- engines: {node: '>=0.10.0'}
+ /why-is-node-running/2.2.2:
+ resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
dev: true
/wrap-ansi/6.2.0:
@@ -7652,15 +7017,6 @@ packages:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
- /write-file-atomic/3.0.3:
- resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
- dependencies:
- imurmurhash: 0.1.4
- is-typedarray: 1.0.0
- signal-exit: 3.0.7
- typedarray-to-buffer: 3.1.5
- dev: true
-
/write-file-atomic/4.0.2:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -7669,12 +7025,12 @@ packages:
signal-exit: 3.0.7
dev: true
- /ws/7.5.9:
- resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
- engines: {node: '>=8.3.0'}
+ /ws/8.15.1:
+ resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==}
+ engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
+ utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
@@ -7682,21 +7038,18 @@ packages:
optional: true
dev: true
- /xml-name-validator/3.0.0:
- resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==}
- dev: true
-
/xml-name-validator/4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
dev: true
- /xmlchars/2.2.0:
- resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ /xml-name-validator/5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
dev: true
- /y18n/4.0.3:
- resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+ /xmlchars/2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
dev: true
/yallist/3.1.1:
@@ -7712,12 +7065,9 @@ packages:
engines: {node: '>= 14'}
dev: true
- /yargs-parser/18.1.3:
- resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
- engines: {node: '>=6'}
- dependencies:
- camelcase: 5.3.1
- decamelize: 1.2.0
+ /yaml/2.3.4:
+ resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
+ engines: {node: '>= 14'}
dev: true
/yargs-parser/20.2.9:
@@ -7725,24 +7075,34 @@ packages:
engines: {node: '>=10'}
dev: true
- /yargs/15.4.1:
- resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
- engines: {node: '>=8'}
- dependencies:
- cliui: 6.0.0
- decamelize: 1.2.0
- find-up: 4.1.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- require-main-filename: 2.0.0
- set-blocking: 2.0.0
- string-width: 4.2.3
- which-module: 2.0.0
- y18n: 4.0.3
- yargs-parser: 18.1.3
- dev: true
-
/yocto-queue/0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
+
+ /yocto-queue/1.0.0:
+ resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
+ engines: {node: '>=12.20'}
+ dev: true
+
+ /zx/7.2.3:
+ resolution: {integrity: sha512-QODu38nLlYXg/B/Gw7ZKiZrvPkEsjPN3LQ5JFXM7h0JvwhEdPNNl+4Ao1y4+o3CLNiDUNcwzQYZ4/Ko7kKzCMA==}
+ engines: {node: '>= 16.0.0'}
+ hasBin: true
+ dependencies:
+ '@types/fs-extra': 11.0.4
+ '@types/minimist': 1.2.2
+ '@types/node': 18.19.3
+ '@types/ps-tree': 1.1.6
+ '@types/which': 3.0.3
+ chalk: 5.3.0
+ fs-extra: 11.2.0
+ fx: 31.0.0
+ globby: 13.2.2
+ minimist: 1.2.8
+ node-fetch: 3.3.1
+ ps-tree: 1.2.0
+ webpod: 0.0.2
+ which: 3.0.1
+ yaml: 2.3.4
+ dev: true
diff --git a/public-types/reflect.d.ts b/public-types/reflect.d.ts
new file mode 100644
index 0000000..0a2a520
--- /dev/null
+++ b/public-types/reflect.d.ts
@@ -0,0 +1,227 @@
+/* eslint-disable @typescript-eslint/consistent-type-definitions */
+import type { EventCallable, Store } from 'effector';
+import type { useUnit } from 'effector-react';
+import type { ComponentType, FC, PropsWithChildren, ReactHTML } from 'react';
+
+type UseUnitConfig = Parameters[1];
+
+type UnbindableProps = 'key' | 'ref';
+
+type Hooks = {
+ mounted?: EventCallable | (() => unknown);
+ unmounted?: EventCallable | (() => unknown);
+};
+
+type BindFromProps = {
+ [K in keyof Props]?: K extends UnbindableProps
+ ? never
+ : Props[K] extends (...args: any[]) => any
+ ? // To force TS infer types for any provided callback
+ | ((...args: Parameters) => ReturnType)
+ // Edge-case: allow to pass an event listener without any parameters (e.g. onClick: () => ...)
+ | (() => ReturnType)
+ : Store | Props[K];
+};
+
+// relfect types
+/**
+ * Operator that creates a component, which props are reactively bound to a store or statically - to any other value.
+ *
+ * @example
+ * ```
+ * const Name = reflect({
+ * view: Input,
+ * bind: {
+ * value: $name,
+ * placeholder: 'Name',
+ * onChange: changeName.prepend(inputChanged),
+ * },
+ * });
+ * ```
+ */
+export function reflect>(config: {
+ view: ComponentType;
+ bind: Bind;
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+}): FC>;
+
+// Note: FC is used as a return type, because tests on a real Next.js project showed,
+// that if theoretically better option like (props: ...) => React.ReactNode is used,
+// then TS type inference works worse in some cases - didn't manage to reproduce it in a reflect type tests though.
+//
+// It is not clear why it works this way (FC return type is actually compatible with ReactNode), but it seems that FC is the best option here :shrug:
+
+// createReflect types
+/**
+ * Method to create a `reflect` function with a predefined `view` component.
+ *
+ * @example
+ * ```
+ * const reflectInput = createReflect(Input);
+ *
+ * const Name = reflectInput({
+ * value: $name,
+ * placeholder: 'Name',
+ * onChange: changeName.prepend(inputChanged),
+ * });
+ * ```
+ */
+export function createReflect>(
+ component: ComponentType,
+): (
+ bind: Bind,
+ features?: {
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+ },
+) => FC>;
+
+// list types
+type PropsifyBind = {
+ [K in keyof Bind]: Bind[K] extends Store ? Value : Bind[K];
+};
+
+type ReflectedProps- = Item & PropsifyBind;
+
+/**
+ * Operator to create a component, which reactivly renders a list of `view` components based on the `source` store with an array value.
+ * Also supports `bind`, like the `reflect` operator.
+ *
+ * @example
+ * ```
+ * const List = list({
+ * source: $items,
+ * view: Item,
+ * mapItem: {
+ * id: (item) => item.id,
+ * value: (item) => item.value,
+ * onChange: (_item) => (_params) => {},
+ * },
+ *});
+ *
+ * ```
+ */
+export function list<
+ Props,
+ Item,
+ MapItem extends {
+ [M in keyof Omit]: (item: Item, index: number) => Props[M];
+ },
+ Bind extends BindFromProps = object,
+>(
+ config: ReflectedProps
- extends Props
+ ? {
+ source: Store
- ;
+ view: ComponentType;
+ bind?: Bind;
+ mapItem?: MapItem;
+ getKey?: (item: Item) => React.Key;
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+ }
+ : {
+ source: Store
- ;
+ view: ComponentType;
+ bind?: Bind;
+ mapItem: MapItem;
+ getKey?: (item: Item) => React.Key;
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+ },
+): FC;
+
+// variant types
+
+/**
+ * Operator to conditionally render a component based on the reactive `source` store value.
+ *
+ * @example
+ * ```
+ * // source is a store with a string
+ * const Component = variant({
+ * source: $isError.map((isError) => (isError ? 'error' : 'success')),
+ * cases: {
+ * error: ErrorComponent,
+ * success: SuccessComponent,
+ * },
+ *});
+ * // shorthand for boolean source
+ * const Component = variant({
+ * if: $isError,
+ * then: ErrorComponent,
+ * else: SuccessComponent,
+ * });
+ * ```
+ */
+export function variant<
+ Props,
+ CaseType extends string,
+ Bind extends BindFromProps,
+>(
+ config:
+ | {
+ source: Store;
+ cases: Partial>>;
+ default?: ComponentType;
+ bind?: Bind;
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+ }
+ | {
+ if: Store;
+ then: ComponentType;
+ else?: ComponentType;
+ bind?: Bind;
+ hooks?: Hooks;
+ /**
+ * This configuration is passed directly to `useUnit`'s hook second argument.
+ */
+ useUnitConfig?: UseUnitConfig;
+ },
+): FC>;
+
+// fromTag types
+type GetProps = Exclude<
+ Parameters[0],
+ null | undefined
+>;
+
+/**
+ *
+ * Simple helper to allow to use `reflect` with any valid html tag
+ *
+ * @example
+ * ```
+ * import { reflect, fromTag } from '@effector/reflect'
+ *
+ * const DomInput = fromTag("input")
+ *
+ * const View = reflect({
+ * view: DomInput,
+ * bind: {
+ * type: 'radio',
+ * value: $value,
+ * onChange: (e) => e.target.value,
+ * }
+ * })
+ * ```
+ */
+export function fromTag(
+ htmlTag: HtmlTag,
+): FC>>;
diff --git a/rollup.config.cjs b/rollup.config.cjs
index 9b8e28e..70f76c0 100644
--- a/rollup.config.cjs
+++ b/rollup.config.cjs
@@ -8,10 +8,8 @@ const babelConfig = require('./babel.config.json');
const plugins = () => [
typescript({
- useTsconfigDeclarationDir: true,
- tsconfigDefaults: {
- compilerOptions: { declaration: true, declarationDir: './dist' },
- },
+ tsconfig: './tsconfig.json',
+ check: false,
}),
babel({
exclude: 'node_modules/**',
@@ -26,19 +24,12 @@ const plugins = () => [
extensions: ['.js', '.mjs'],
}),
commonjs({ extensions: ['.js', '.mjs'] }),
- terser(),
+ // terser(),
];
const noSsr = './src/index.ts';
-const ssr = './src/ssr.ts';
const scope = './src/scope.ts';
-const external = [
- 'effector',
- 'effector-react',
- 'react',
- 'effector-react/ssr',
- 'effector-react/scope',
-];
+const external = ['effector', 'effector-react', 'react', 'effector-react/scope'];
module.exports = [
{
@@ -46,18 +37,7 @@ module.exports = [
external,
plugins: plugins(),
output: {
- file: './dist/reflect.mjs',
- format: 'es',
- sourcemap: true,
- externalLiveBindings: false,
- },
- },
- {
- input: ssr,
- external,
- plugins: plugins(),
- output: {
- file: './dist/ssr.mjs',
+ file: './dist/index.mjs',
format: 'es',
sourcemap: true,
externalLiveBindings: false,
@@ -79,20 +59,7 @@ module.exports = [
external,
plugins: plugins(),
output: {
- file: './dist/reflect.cjs',
- format: 'cjs',
- freeze: false,
- exports: 'named',
- sourcemap: true,
- externalLiveBindings: false,
- },
- },
- {
- input: ssr,
- external,
- plugins: plugins(),
- output: {
- file: './dist/ssr.js',
+ file: './dist/index.cjs',
format: 'cjs',
freeze: false,
exports: 'named',
diff --git a/src/core/fromTag.ts b/src/core/fromTag.ts
new file mode 100644
index 0000000..ccfffa8
--- /dev/null
+++ b/src/core/fromTag.ts
@@ -0,0 +1,8 @@
+import type { ReactNode } from 'react';
+import { createElement } from 'react';
+
+export function fromTag(htmlTag: HtmlTag) {
+ return (props: Record): ReactNode => {
+ return createElement(htmlTag, props);
+ };
+}
diff --git a/src/core/index.ts b/src/core/index.ts
index ec7f020..2f84036 100644
--- a/src/core/index.ts
+++ b/src/core/index.ts
@@ -1,3 +1,4 @@
export { reflectFactory, reflectCreateFactory } from './reflect';
export { variantFactory } from './variant';
export { listFactory } from './list';
+export { fromTag } from './fromTag';
diff --git a/src/core/list.ts b/src/core/list.ts
index d942af0..e01837e 100644
--- a/src/core/list.ts
+++ b/src/core/list.ts
@@ -1,47 +1,9 @@
-import { Store } from 'effector';
+import { scopeBind, Store } from 'effector';
+import { useProvidedScope } from 'effector-react';
import React from 'react';
import { reflectFactory } from './reflect';
-import { BindableProps, Context, Hooks, PartialBoundProps, View } from './types';
-
-type ReflectListConfig = Item extends Props
- ? {
- view: View;
- source: Store
- ;
- bind?: Bind;
- hooks?: Hooks;
- getKey?: (item: Item) => React.Key;
- mapItem?: {
- [P in keyof PartialBoundProps]: (
- item: Item,
- index: number,
- ) => PartialBoundProps[P];
- };
- }
- :
- | {
- view: View;
- source: Store
- ;
- bind?: undefined;
- hooks?: Hooks;
- getKey?: (item: Item) => React.Key;
- mapItem: {
- [P in keyof Props]: (item: Item, index: number) => Props[P];
- };
- }
- | {
- view: View;
- source: Store
- ;
- bind: Bind;
- hooks?: Hooks;
- getKey?: (item: Item) => React.Key;
- mapItem?: {
- [P in keyof PartialBoundProps]: (
- item: Item,
- index: number,
- ) => PartialBoundProps[P];
- };
- };
+import { BindProps, Context, Hooks, UseUnitConifg, View } from './types';
export function listFactory(context: Context) {
const reflect = reflectFactory(context);
@@ -49,17 +11,29 @@ export function listFactory(context: Context) {
return function list<
Item extends Record,
Props,
- Bind extends BindableProps = BindableProps,
- >(config: ReflectListConfig): React.FC {
+ Bind extends BindProps,
+ >(config: {
+ source: Store
- ;
+ view: View;
+ bind?: Bind;
+ mapItem?: {
+ [K in keyof Props]: (item: Item, index: number) => Props[K];
+ };
+ getKey?: (item: Item) => React.Key;
+ hooks?: Hooks;
+ useUnitConfig?: UseUnitConifg;
+ }): React.FC {
const ItemView = reflect({
view: config.view,
bind: config.bind ? config.bind : ({} as Bind),
hooks: config.hooks,
+ useUnitConfig: config.useUnitConfig,
});
const listConfig = {
getKey: config.getKey,
fn: (value: Item, index: number) => {
+ const scope = useProvidedScope();
const finalProps = React.useMemo(() => {
const props: any = {};
@@ -70,7 +44,14 @@ export function listFactory(context: Context) {
config.mapItem![prop];
const propValue = fn(value, index);
- props[prop] = propValue;
+ if (typeof propValue === 'function') {
+ props[prop] = scopeBind(propValue, {
+ safe: true,
+ scope: scope || undefined,
+ });
+ } else {
+ props[prop] = propValue;
+ }
});
} else {
forIn(value, (prop) => {
diff --git a/src/core/reflect.ts b/src/core/reflect.ts
index 3539f51..041c928 100644
--- a/src/core/reflect.ts
+++ b/src/core/reflect.ts
@@ -1,55 +1,57 @@
-import { Effect, Event, is, Store } from 'effector';
+import { Effect, Event, EventCallable, is, scopeBind, Store } from 'effector';
+import { useProvidedScope } from 'effector-react';
import React from 'react';
-import {
- BindableProps,
- Context,
- Hook,
- Hooks,
- PartialBoundProps,
- View,
-} from './types';
+import { BindProps, Context, Hook, Hooks, UseUnitConifg, View } from './types';
-export interface ReflectConfig> {
+export interface ReflectConfig> {
view: View;
bind: Bind;
hooks?: Hooks;
+ useUnitConfig?: UseUnitConifg;
}
export function reflectCreateFactory(context: Context) {
const reflect = reflectFactory(context);
return function createReflect(view: View) {
- return = BindableProps>(
+ return = BindProps>(
bind: Bind,
- params?: Pick, 'hooks'>,
+ params?: Pick, 'hooks' | 'useUnitConfig'>,
) => reflect({ view, bind, ...params });
};
}
export function reflectFactory(context: Context) {
- return function reflect<
- Props,
- Bind extends BindableProps = BindableProps,
- >(
+ return function reflect = BindProps>(
config: ReflectConfig,
- ): React.ExoticComponent> {
- const { stores, events, data } = sortProps(config);
+ ): React.ExoticComponent<{}> {
+ const { stores, events, data, functions } = sortProps(config);
return React.forwardRef((props, ref) => {
- const storeProps = context.useUnit(stores);
- const eventsProps = context.useUnit(events);
+ const storeProps = context.useUnit(stores, config.useUnitConfig);
+ const eventsProps = context.useUnit(events as any, config.useUnitConfig);
+ const functionProps = useBindedFunctions(functions);
const elementProps: Props = Object.assign(
{ ref },
storeProps,
eventsProps,
data,
+ functionProps,
props,
);
- const mounted = wrapToHook(config.hooks?.mounted, context);
- const unmounted = wrapToHook(config.hooks?.unmounted, context);
+ const mounted = wrapToHook(
+ config.hooks?.mounted,
+ context,
+ config.useUnitConfig,
+ );
+ const unmounted = wrapToHook(
+ config.hooks?.unmounted,
+ context,
+ config.useUnitConfig,
+ );
React.useEffect(() => {
if (mounted) mounted();
@@ -64,7 +66,7 @@ export function reflectFactory(context: Context) {
};
}
-function sortProps = BindableProps>(
+function sortProps = BindProps>(
config: ReflectConfig,
) {
type GenericEvent = Event | Effect;
@@ -72,6 +74,7 @@ function sortProps = BindableProps = {};
const stores: Record> = {};
const data: Record = {};
+ const functions: Record = {};
for (const key in config.bind) {
const value = config.bind[key];
@@ -80,17 +83,35 @@ function sortProps = BindableProps) {
+ const scope = useProvidedScope();
+
+ return React.useMemo(() => {
+ const bindedFunctions: Record = {};
+
+ for (const key in functions) {
+ const fn = functions[key];
+
+ bindedFunctions[key] = scopeBind(fn, { scope: scope || undefined, safe: true });
+ }
+
+ return bindedFunctions;
+ }, [scope, functions]);
}
-function wrapToHook(hook: Hook | void, context: Context) {
+function wrapToHook(hook: Hook | void, context: Context, config?: UseUnitConifg) {
if (hookDefined(hook)) {
- return context.useUnit(hook as Event);
+ return context.useUnit(hook as EventCallable, config);
}
return hook;
diff --git a/src/core/types.ts b/src/core/types.ts
index 108f0e3..b5c78ad 100644
--- a/src/core/types.ts
+++ b/src/core/types.ts
@@ -1,38 +1,30 @@
-import { Effect, Event, Store } from 'effector';
+import { Effect, EventCallable, Store } from 'effector';
import { useList, useUnit } from 'effector-react';
-import { ComponentClass, FC } from 'react';
+import { ComponentType } from 'react';
+
+/**
+ * This is the internal typings - for the library internals, where we do not really care about real-world user data.
+ *
+ * Public types are stored separately from the source code, so it is easier to develop and test them.
+ * You can find public types in `public-types` folder and tests for type inference at the `type-tests` folder.
+ */
export interface Context {
useUnit: typeof useUnit;
useList: typeof useList;
}
-type UnbindableProps = 'key' | 'ref';
-
-type Storify = Omit, 'updates' | 'reset' | 'on' | 'off' | 'thru'>;
+export type View = ComponentType;
-export type BindableProps = {
- [Key in Exclude]?: Props[Key] extends (
- payload: any,
- ) => void
- ? Storify | Props[Key] | Event
- : Storify | Props[Key];
+export type BindProps = {
+ [K in keyof Props]: Props[K] | Store | EventCallable;
};
-export type View = FC | ComponentClass;
-
-type UnboundProps = Omit;
-type BoundProps = Omit>;
-
-export type PartialBoundProps = UnboundProps &
- Partial>;
-
-export type Hook = (() => any) | Event | Effect;
+export type Hook = (() => any) | EventCallable | Effect;
export interface Hooks {
mounted?: Hook;
unmounted?: Hook;
}
-export type AtLeastOne }> = Partial &
- U[keyof U];
+export type UseUnitConifg = Parameters[1];
diff --git a/src/core/variant.ts b/src/core/variant.ts
index e799967..f3c62d5 100644
--- a/src/core/variant.ts
+++ b/src/core/variant.ts
@@ -2,14 +2,7 @@ import { Store } from 'effector';
import React from 'react';
import { reflectFactory } from './reflect';
-import {
- AtLeastOne,
- BindableProps,
- Context,
- Hooks,
- PartialBoundProps,
- View,
-} from './types';
+import { BindProps, Context, Hooks, UseUnitConifg, View } from './types';
const Default = () => null;
@@ -19,15 +12,16 @@ export function variantFactory(context: Context) {
return function variant<
Props,
Variant extends string,
- Bind extends BindableProps,
+ Bind extends BindProps,
>(
config:
| {
source: Store;
bind?: Bind;
- cases: AtLeastOne>>;
+ cases: Record>;
hooks?: Hooks;
default?: View;
+ useUnitConfig?: UseUnitConifg;
}
| {
if: Store;
@@ -35,10 +29,11 @@ export function variantFactory(context: Context) {
else?: View;
hooks?: Hooks;
bind?: Bind;
+ useUnitConfig?: UseUnitConifg;
},
- ): React.FC> {
+ ): (p: Props) => React.ReactNode {
let $case: Store;
- let cases: AtLeastOne>>;
+ let cases: Record>;
let def: View;
// Shortcut for Store
@@ -48,7 +43,7 @@ export function variantFactory(context: Context) {
cases = {
then: config.then,
else: config.else,
- } as unknown as AtLeastOne>>;
+ } as unknown as Record>;
def = Default;
}
// Full form for Store
@@ -59,7 +54,7 @@ export function variantFactory(context: Context) {
}
function View(props: Props) {
- const nameOfCase = context.useUnit($case);
+ const nameOfCase = context.useUnit($case, config.useUnitConfig);
const Component = cases[nameOfCase] ?? def;
return React.createElement(Component as any, props as any);
@@ -71,6 +66,7 @@ export function variantFactory(context: Context) {
bind,
view: View,
hooks: config.hooks,
- });
+ useUnitConfig: config.useUnitConfig,
+ }) as unknown as (p: Props) => React.ReactNode;
};
}
diff --git a/src/index.ts b/src/index.ts
index 7c0ed19..49233e8 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,6 +1,7 @@
import * as context from 'effector-react';
import {
+ fromTag,
listFactory,
reflectCreateFactory,
reflectFactory,
@@ -13,3 +14,5 @@ export const createReflect = reflectCreateFactory(context);
export const variant = variantFactory(context);
export const list = listFactory(context);
+
+export { fromTag };
diff --git a/src/no-ssr/create-reflect.test.tsx b/src/no-ssr/create-reflect.test.tsx
index adff300..77c9087 100644
--- a/src/no-ssr/create-reflect.test.tsx
+++ b/src/no-ssr/create-reflect.test.tsx
@@ -1,11 +1,10 @@
+import { createReflect } from '@effector/reflect';
import { render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { createEffect, createEvent, createStore, restore } from 'effector';
import React, { FC, InputHTMLAttributes } from 'react';
import { act } from 'react-dom/test-utils';
-import { createReflect } from '../index';
-
// Example1 (InputCustom)
const InputCustom: FC<{
value: string | number | string[];
@@ -112,7 +111,7 @@ describe('hooks', () => {
const changeName = createEvent();
const $name = restore(changeName, '');
- const mounted = jest.fn(() => {});
+ const mounted = vi.fn(() => {});
const Name = inputBase(
{
@@ -132,7 +131,7 @@ describe('hooks', () => {
const $name = restore(changeName, '');
const mounted = createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
mounted.watch(fn);
@@ -173,7 +172,7 @@ describe('hooks', () => {
const changeName = createEvent();
const $name = restore(changeName, '');
- const unmounted = jest.fn(() => {});
+ const unmounted = vi.fn(() => {});
const Name = inputBase(
{
@@ -197,7 +196,7 @@ describe('hooks', () => {
const $name = restore(changeName, '');
const unmounted = createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
unmounted.watch(fn);
@@ -219,3 +218,14 @@ describe('hooks', () => {
});
});
});
+
+describe('useUnitConfig', () => {
+ test('useUnit config should be passed to underlying useUnit', () => {
+ expect(() => {
+ const Name = inputBase({}, { useUnitConfig: { forceScope: true } });
+ render();
+ }).toThrowErrorMatchingInlineSnapshot(
+ `[Error: No scope found, consider adding to app root]`,
+ );
+ });
+});
diff --git a/src/no-ssr/list.test.tsx b/src/no-ssr/list.test.tsx
index 3c4f61d..e6170ac 100644
--- a/src/no-ssr/list.test.tsx
+++ b/src/no-ssr/list.test.tsx
@@ -1,11 +1,10 @@
+import { list } from '@effector/reflect';
import { render } from '@testing-library/react';
-import { createEvent, createStore } from 'effector';
-import { useStore } from 'effector-react';
+import { allSettled, createEffect, createEvent, createStore, fork } from 'effector';
+import { Provider, useStore } from 'effector-react';
import React, { FC, memo } from 'react';
import { act } from 'react-dom/test-utils';
-import { list } from '../index';
-
const List: FC = (props) => {
return ;
};
@@ -56,13 +55,13 @@ test('relfect-list: reflect hooks called once for every item', async () => {
const mounted = createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
mounted.watch(fn);
const unmounted = createEvent();
- const unfn = jest.fn(() => {});
+ const unfn = vi.fn(() => {});
mounted.watch(unfn);
@@ -359,8 +358,8 @@ const Member: FC = (props) => {
};
test('reflect-list: getKey option', async () => {
- const fn = jest.fn();
- const fn2 = jest.fn();
+ const fn = vi.fn();
+ const fn2 = vi.fn();
const renameUser = createEvent<{ id: number; name: string }>();
const removeUser = createEvent();
const sortById = createEvent();
@@ -495,3 +494,74 @@ test('reflect-list: getKey option', async () => {
fn2.mock.calls.map(([arg]) => arg),
);
});
+
+test('scoped callback support in mapItem', async () => {
+ const sleepFx = createEffect(
+ async (ms: number) => new Promise((rs) => setTimeout(rs, ms)),
+ );
+ let sendRender = (v: string) => {};
+ const Input = (props: {
+ value: string;
+ onChange: (_event: string) => Promise;
+ }) => {
+ const [render, setRender] = React.useState(null);
+ React.useLayoutEffect(() => {
+ if (render) {
+ props.onChange(render);
+ }
+ }, [render]);
+ sendRender = setRender;
+ return ;
+ };
+
+ const $names = createStore(['name']);
+ const $name = createStore('');
+ const changeName = createEvent();
+ $name.on(changeName, (_, next) => next);
+
+ const Names = list({
+ source: $names,
+ view: Input,
+ bind: {
+ value: $name,
+ },
+ mapItem: {
+ onChange: (_name) => async (event: string) => {
+ await sleepFx(100);
+ changeName(event);
+ },
+ },
+ });
+
+ const scope = fork();
+ render(
+
+
+ ,
+ );
+
+ await act(async () => {
+ sendRender('Bob');
+ });
+ await allSettled(scope);
+
+ expect(scope.getState($name)).toBe('Bob');
+ expect($name.getState()).toBe('');
+});
+
+describe('useUnitConfig', () => {
+ test('useUnit config should be passed to underlying useUnit', () => {
+ expect(() => {
+ const Test = list({
+ view: () => null,
+ source: createStore([42]),
+ useUnitConfig: {
+ forceScope: true,
+ },
+ });
+ render();
+ }).toThrowErrorMatchingInlineSnapshot(
+ `[Error: No scope found, consider adding to app root]`,
+ );
+ });
+});
diff --git a/src/no-ssr/reflect.test.tsx b/src/no-ssr/reflect.test.tsx
index df39d22..917580d 100644
--- a/src/no-ssr/reflect.test.tsx
+++ b/src/no-ssr/reflect.test.tsx
@@ -1,11 +1,18 @@
+import { fromTag, reflect } from '@effector/reflect';
import { render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
-import { createEffect, createEvent, createStore, restore } from 'effector';
+import {
+ allSettled,
+ createEffect,
+ createEvent,
+ createStore,
+ fork,
+ restore,
+} from 'effector';
+import { Provider } from 'effector-react';
import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
import { act } from 'react-dom/test-utils';
-import { reflect } from '../index';
-
// Example1 (InputCustom)
const InputCustom: FC<{
value: string | number | string[];
@@ -159,13 +166,142 @@ test('forwardRef', async () => {
expect(container.getByTestId('name')).toBe(ref.current);
});
+describe('plain callbacks with scopeBind under the hood', () => {
+ test('sync callback in bind', async () => {
+ let sendRender = (v: string) => {};
+ const Input = (props: { value: string; onChange: (_event: string) => void }) => {
+ const [render, setRender] = React.useState(null);
+ React.useLayoutEffect(() => {
+ if (render) {
+ props.onChange(render);
+ }
+ }, [render]);
+ sendRender = setRender;
+ return ;
+ };
+
+ const $name = createStore('');
+ const changeName = createEvent();
+ $name.on(changeName, (_, next) => next);
+
+ const Name = reflect({
+ view: Input,
+ bind: {
+ value: $name,
+ onChange: (v) => changeName(v),
+ },
+ });
+
+ render();
+
+ await act(() => {
+ sendRender('Bob');
+ });
+
+ expect($name.getState()).toBe('Bob');
+ });
+
+ test('sync callback in bind (scope)', async () => {
+ let sendRender = (v: string) => {};
+ const Input = (props: { value: string; onChange: (_event: string) => void }) => {
+ const [render, setRender] = React.useState(null);
+ React.useLayoutEffect(() => {
+ if (render) {
+ props.onChange(render);
+ }
+ }, [render]);
+ sendRender = setRender;
+ return ;
+ };
+
+ const $name = createStore('');
+ const changeName = createEvent();
+ $name.on(changeName, (_, next) => next);
+
+ const Name = reflect({
+ view: Input,
+ bind: {
+ value: $name,
+ onChange: (v) => changeName(v),
+ },
+ });
+
+ const scope = fork();
+
+ render(
+
+
+ ,
+ );
+
+ await act(() => {
+ sendRender('Bob');
+ });
+
+ expect(scope.getState($name)).toBe('Bob');
+ expect($name.getState()).toBe('');
+ });
+
+ test('async callback in bind (scope)', async () => {
+ const sleepFx = createEffect(
+ async (ms: number) => new Promise((rs) => setTimeout(rs, ms)),
+ );
+ let sendRender = (v: string) => {};
+ const Input = (props: {
+ value: string;
+ onChange: (_event: string) => Promise;
+ }) => {
+ const [render, setRender] = React.useState(null);
+ React.useLayoutEffect(() => {
+ if (render) {
+ props.onChange(render);
+ }
+ }, [render]);
+ sendRender = setRender;
+ return ;
+ };
+
+ const $name = createStore('');
+ const changeName = createEvent();
+ $name.on(changeName, (_, next) => next);
+
+ const Name = reflect({
+ view: Input,
+ bind: {
+ value: $name,
+ onChange: async (v) => {
+ await sleepFx(1);
+ changeName(v);
+ },
+ },
+ });
+
+ const scope = fork();
+
+ render(
+
+
+ ,
+ );
+
+ await act(() => {
+ sendRender('Bob');
+ });
+
+ await allSettled(scope);
+
+ expect(scope.getState($name)).toBe('Bob');
+ expect($name.getState()).toBe('');
+ });
+});
+
describe('hooks', () => {
describe('mounted', () => {
test('callback', () => {
const changeName = createEvent();
const $name = restore(changeName, '');
- const mounted = jest.fn(() => {});
+ const mounted = vi.fn(() => {});
const Name = reflect({
view: InputBase,
@@ -186,7 +322,7 @@ describe('hooks', () => {
const $name = restore(changeName, '');
const mounted = createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
mounted.watch(fn);
@@ -227,7 +363,7 @@ describe('hooks', () => {
const changeName = createEvent();
const $name = restore(changeName, '');
- const unmounted = jest.fn(() => {});
+ const unmounted = vi.fn(() => {});
const Name = reflect({
view: InputBase,
@@ -252,7 +388,7 @@ describe('hooks', () => {
const $name = restore(changeName, '');
const unmounted = createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
unmounted.watch(fn);
@@ -275,3 +411,66 @@ describe('hooks', () => {
});
});
});
+
+describe('fromTag helper', () => {
+ test('Basic usage work', async () => {
+ const changed = createEvent();
+ const $fromHandler = createStore(null).on(changed, (_, next) => next);
+ const $type = createStore('hidden');
+
+ const DomInput = fromTag('input');
+
+ const Input = reflect({
+ view: DomInput,
+ bind: {
+ type: $type,
+ onChange: changed.prepend((event) => event),
+ 'data-testid': 'test-input',
+ },
+ });
+
+ const scopeText = fork({
+ values: [[$type, 'text']],
+ });
+ const scopeEmail = fork({
+ values: [[$type, 'email']],
+ });
+
+ const body = render(
+
+
+ ,
+ );
+
+ expect((body.container.firstChild as any).type).toBe('text');
+
+ await userEvent.type(body.getByTestId('test-input'), 'bob');
+
+ expect(scopeText.getState($fromHandler).target.value).toBe('bob');
+
+ const body2 = render(
+
+
+ ,
+ );
+
+ expect((body2.container.firstChild as any).type).toBe('email');
+ });
+});
+
+describe('useUnitConfig', () => {
+ test('useUnit config should be passed to underlying useUnit', () => {
+ expect(() => {
+ const Test = reflect({
+ view: () => null,
+ bind: {},
+ useUnitConfig: {
+ forceScope: true,
+ },
+ });
+ render();
+ }).toThrowErrorMatchingInlineSnapshot(
+ `[Error: No scope found, consider adding to app root]`,
+ );
+ });
+});
diff --git a/src/no-ssr/variant.test.tsx b/src/no-ssr/variant.test.tsx
index 11dc212..ecce031 100644
--- a/src/no-ssr/variant.test.tsx
+++ b/src/no-ssr/variant.test.tsx
@@ -1,10 +1,9 @@
+import { variant } from '@effector/reflect';
import { act, render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { createEvent, createStore, restore } from 'effector';
import React from 'react';
-import { variant } from '../index';
-
test('matches first', async () => {
const changeValue = createEvent();
const changeType = createEvent<'first' | 'second' | 'third'>();
@@ -79,7 +78,7 @@ test('hooks works once on mount', async () => {
const changeType = createEvent<'first' | 'second' | 'third'>();
const $type = restore(changeType, 'first');
const mounted = createEvent();
- const fn = jest.fn();
+ const fn = vi.fn();
mounted.watch(fn);
const Input = variant({
@@ -108,7 +107,7 @@ test('hooks works once on unmount', async () => {
const changeType = createEvent<'first' | 'second' | 'third'>();
const $type = restore(changeType, 'first');
const unmounted = createEvent();
- const fn = jest.fn();
+ const fn = vi.fn();
unmounted.watch(fn);
const setVisible = createEvent();
const $visible = restore(setVisible, true);
@@ -147,10 +146,10 @@ test('hooks works on remount', async () => {
const $type = restore(changeType, 'first');
const unmounted = createEvent();
- const onUnmount = jest.fn();
+ const onUnmount = vi.fn();
unmounted.watch(onUnmount);
const mounted = createEvent();
- const onMount = jest.fn();
+ const onMount = vi.fn();
mounted.watch(onMount);
const setVisible = createEvent();
@@ -287,3 +286,40 @@ describe('overload for Store', () => {
expect(() => container.getByTestId('then')).toThrowError();
});
});
+
+describe('useUnitConfig', () => {
+ test('useUnit config should be passed to underlying useUnit', () => {
+ expect(() => {
+ const Test = variant({
+ source: createStore<'a' | 'b'>('a'),
+ cases: {
+ a: () => null,
+ b: () => null,
+ },
+ bind: {},
+ useUnitConfig: {
+ forceScope: true,
+ },
+ });
+ render();
+ }).toThrowErrorMatchingInlineSnapshot(
+ `[Error: No scope found, consider adding to app root]`,
+ );
+ });
+ test('useUnit config should be passed to underlying useUnit (bool overload)', () => {
+ expect(() => {
+ const Test = variant({
+ if: createStore(true),
+ then: () => null,
+ else: () => null,
+ bind: {},
+ useUnitConfig: {
+ forceScope: true,
+ },
+ });
+ render();
+ }).toThrowErrorMatchingInlineSnapshot(
+ `[Error: No scope found, consider adding to app root]`,
+ );
+ });
+});
diff --git a/src/scope.ts b/src/scope.ts
index 2a02474..3da450c 100644
--- a/src/scope.ts
+++ b/src/scope.ts
@@ -7,6 +7,10 @@ import {
variantFactory,
} from './core';
+console.error(
+ '`@effector/reflect/scope` is deprecated, use main `@effector/reflect` package instead',
+);
+
export const reflect = reflectFactory(effectorReactSSR);
export const createReflect = reflectCreateFactory(effectorReactSSR);
diff --git a/src/ssr.ts b/src/ssr.ts
deleted file mode 100644
index 871cdef..0000000
--- a/src/ssr.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-console.error(
- '`@effector/reflect/ssr` is deprecated, import from `@effector/reflect/scope` instead',
-);
-export * from './scope';
diff --git a/src/ssr/create-reflect.test.tsx b/src/ssr/create-reflect.test.tsx
index ebf2f95..b76f7be 100644
--- a/src/ssr/create-reflect.test.tsx
+++ b/src/ssr/create-reflect.test.tsx
@@ -1,11 +1,10 @@
+import { createReflect } from '@effector/reflect/scope';
import { act, render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { allSettled, createDomain, fork, restore } from 'effector';
-import { Provider } from 'effector-react/ssr';
+import { Provider } from 'effector-react/scope';
import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
-import { createReflect } from '../scope';
-
// Example1 (InputCustom)
const InputCustom: FC<{
value: string | number | string[];
diff --git a/src/ssr/list.test.tsx b/src/ssr/list.test.tsx
index 075e3db..f06d6c8 100644
--- a/src/ssr/list.test.tsx
+++ b/src/ssr/list.test.tsx
@@ -1,10 +1,9 @@
+import { list } from '@effector/reflect/scope';
import { act, render } from '@testing-library/react';
import { allSettled, createDomain, fork } from 'effector';
import { Provider, useStore } from 'effector-react/scope';
import React, { FC, memo } from 'react';
-import { list } from '../scope';
-
const List: FC = (props) => {
return ;
};
@@ -61,13 +60,13 @@ test('relfect-list: reflect hooks called once for every item', async () => {
const mounted = app.createEvent();
- const fn = jest.fn(() => {});
+ const fn = vi.fn(() => {});
mounted.watch(fn);
const unmounted = app.createEvent();
- const unfn = jest.fn(() => {});
+ const unfn = vi.fn(() => {});
unmounted.watch(unfn);
@@ -226,8 +225,8 @@ const Member: FC = (props) => {
};
test('reflect-list: getKey option', async () => {
- const fn = jest.fn();
- const fn2 = jest.fn();
+ const fn = vi.fn();
+ const fn2 = vi.fn();
const app = createDomain();
const renameUser = app.createEvent<{ id: number; name: string }>();
diff --git a/src/ssr/reflect.test.tsx b/src/ssr/reflect.test.tsx
index 071c4ec..703c058 100644
--- a/src/ssr/reflect.test.tsx
+++ b/src/ssr/reflect.test.tsx
@@ -1,11 +1,10 @@
+import { reflect } from '@effector/reflect/scope';
import { render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { allSettled, createDomain, fork, restore } from 'effector';
-import { Provider } from 'effector-react/ssr';
+import { Provider } from 'effector-react/scope';
import React, { ChangeEvent, FC, InputHTMLAttributes } from 'react';
-import { reflect } from '../ssr';
-
// Example1 (InputCustom)
const InputCustom: FC<{
value: string | number | string[];
diff --git a/src/ssr/variant.test.tsx b/src/ssr/variant.test.tsx
index f0d7254..48964dc 100644
--- a/src/ssr/variant.test.tsx
+++ b/src/ssr/variant.test.tsx
@@ -1,11 +1,10 @@
+import { variant } from '@effector/reflect/scope';
import { act, render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { allSettled, createDomain, fork, restore } from 'effector';
-import { Provider } from 'effector-react/ssr';
+import { Provider } from 'effector-react/scope';
import React from 'react';
-import { variant } from '../ssr';
-
test('matches first', async () => {
const app = createDomain();
const changeValue = app.createEvent();
@@ -56,7 +55,7 @@ test('hooks works once on mount', async () => {
const changeType = app.createEvent<'first' | 'second' | 'third'>();
const $type = restore(changeType, 'first');
const mounted = app.createEvent();
- const fn = jest.fn();
+ const fn = vi.fn();
mounted.watch(fn);
const Input = variant({
@@ -92,7 +91,7 @@ test('hooks works once on unmount', async () => {
const changeType = app.createEvent<'first' | 'second' | 'third'>();
const $type = restore(changeType, 'first');
const unmounted = app.createEvent();
- const fn = jest.fn();
+ const fn = vi.fn();
unmounted.watch(fn);
const setVisible = app.createEvent();
const $visible = restore(setVisible, true);
@@ -138,10 +137,10 @@ test('hooks works on remount', async () => {
const $type = restore(changeType, 'first');
const unmounted = app.createEvent();
- const onUnmount = jest.fn();
+ const onUnmount = vi.fn();
unmounted.watch(onUnmount);
const mounted = app.createEvent();
- const onMount = jest.fn();
+ const onMount = vi.fn();
mounted.watch(onMount);
const setVisible = app.createEvent();
diff --git a/tsconfig.json b/tsconfig.json
index 8a1aa48..dee8d67 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,3 +1,10 @@
{
- "extends": "./.config/tsconfig.base.json"
+ "extends": "./.config/tsconfig.base.json",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@effector/reflect": ["./public-types/reflect.d.ts"],
+ "@effector/reflect/scope": ["./public-types/reflect.d.ts"]
+ }
+ }
}
diff --git a/type-tests/tsconfig.json b/type-tests/tsconfig.json
index d4b6e44..64bf00d 100644
--- a/type-tests/tsconfig.json
+++ b/type-tests/tsconfig.json
@@ -12,8 +12,12 @@
"noImplicitThis": true,
"noUnusedLocals": false,
"strict": true,
+ "skipLibCheck": true,
"jsx": "react",
"strictNullChecks": true,
- "suppressImplicitAnyIndexErrors": true
+ "paths": {
+ "@effector/reflect": ["../public-types/reflect.d.ts"],
+ "@effector/reflect/scope": ["../public-types/reflect.d.ts"]
+ }
}
}
diff --git a/type-tests/types-create-reflect.tsx b/type-tests/types-create-reflect.tsx
new file mode 100644
index 0000000..53941b9
--- /dev/null
+++ b/type-tests/types-create-reflect.tsx
@@ -0,0 +1,26 @@
+/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { createReflect } from '@effector/reflect';
+import { createEvent, createStore } from 'effector';
+import React from 'react';
+import { expectType } from 'tsd';
+
+// basic createReflect
+{
+ const Input: React.FC<{
+ value: string;
+ onChange: (newValue: string) => void;
+ color: 'red';
+ }> = () => null;
+ const $value = createStore('');
+ const changed = createEvent();
+
+ const reflectInput = createReflect(Input);
+
+ const ReflectedInput = reflectInput({
+ value: $value,
+ onChange: changed,
+ color: 'red',
+ });
+
+ expectType(ReflectedInput);
+}
diff --git a/type-tests/types-from-tag.ts b/type-tests/types-from-tag.ts
new file mode 100644
index 0000000..ee09c5f
--- /dev/null
+++ b/type-tests/types-from-tag.ts
@@ -0,0 +1,91 @@
+import { fromTag, reflect } from '@effector/reflect';
+import { createEvent, createStore } from 'effector';
+import React from 'react';
+import { expectType } from 'tsd';
+
+// fromTag creates a valid component
+{
+ const Input = fromTag('input');
+
+ expectType<
+ (
+ props: React.PropsWithChildren<
+ React.ClassAttributes &
+ React.InputHTMLAttributes
+ >,
+ ) => React.ReactNode
+ >(Input);
+}
+
+// fromTag compoment is allowed in reflect
+{
+ const Input = fromTag('input');
+
+ const $value = createStore('');
+
+ const View = reflect({
+ view: Input,
+ bind: {
+ value: $value,
+ onChange: (e) => {
+ const strValue = e.target.value;
+
+ strValue.trim();
+ },
+ },
+ });
+}
+
+// inline fromTag is supported
+{
+ const $value = createStore('');
+
+ const handleChange = createEvent();
+
+ const View = reflect({
+ view: fromTag('input'),
+ bind: {
+ type: 'text',
+ value: $value,
+ /**
+ * Type inference for inline fromTag is slightly worse, than for non-inline version :(
+ *
+ * I don't known why, but in this case `onChange` argument type must be type explicitly,
+ * type inference doesn't work here
+ *
+ * TypeScript won't allow invalid value,
+ * but also won't infer correct type for us here, like it does with non-inline usage :shrug:
+ */
+ onChange: (e: React.ChangeEvent) => {
+ handleChange(e.target.value);
+ },
+ },
+ });
+}
+
+// invalid props are not supported
+{
+ const Input = fromTag('input');
+
+ const $value = createStore({});
+
+ const View = reflect({
+ view: Input,
+ bind: {
+ // @ts-expect-error
+ value: $value,
+ // @ts-expect-error
+ onChange: (e: string) => {},
+ },
+ });
+
+ const View2 = reflect({
+ view: fromTag('input'),
+ bind: {
+ // @ts-expect-error
+ value: $value,
+ // @ts-expect-error
+ onChange: 'kek',
+ },
+ });
+}
diff --git a/type-tests/types-list.tsx b/type-tests/types-list.tsx
index e89c753..8bfc681 100644
--- a/type-tests/types-list.tsx
+++ b/type-tests/types-list.tsx
@@ -1,10 +1,9 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { list } from '@effector/reflect';
import { createEvent, createStore } from 'effector';
import React from 'react';
import { expectType } from 'tsd';
-import { list } from '../src';
-
// basic usage of list
{
const Item: React.FC<{
@@ -123,6 +122,31 @@ import { list } from '../src';
expectType(List);
}
+// list does not allow to set prop in mapItem, if it is already set in bind
+{
+ const Item: React.FC<{
+ id: number;
+ value: string;
+ common: string;
+ }> = () => null;
+ const $common = createStore('common prop');
+ const $items = createStore<{ id: number; value: string }[]>([]);
+
+ const List = list({
+ source: $items,
+ bind: {
+ common: $common,
+ },
+ mapItem: {
+ // @ts-expect-error
+ common: () => 'common prop',
+ },
+ view: Item,
+ });
+
+ expectType(List);
+}
+
// list allows not to set both `bind` and `mapItem` if source type matches with props
{
const Item: React.FC<{
diff --git a/type-tests/types-reflect.tsx b/type-tests/types-reflect.tsx
index ac7af3a..7a6b15f 100644
--- a/type-tests/types-reflect.tsx
+++ b/type-tests/types-reflect.tsx
@@ -1,10 +1,9 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { reflect } from '@effector/reflect';
import { createEvent, createStore } from 'effector';
-import React from 'react';
+import React, { ComponentType, PropsWithChildren, ReactNode } from 'react';
import { expectType } from 'tsd';
-import { reflect } from '../src';
-
// basic reflect
{
const Input: React.FC<{
@@ -105,7 +104,7 @@ import { reflect } from '../src';
expectType(AppFixed);
}
-// reflect should allow to pass Event as click event handler
+// reflect should allow to pass EventCallable as click event handler
{
const Button: React.FC<{
onClick: React.EventHandler>;
@@ -160,3 +159,86 @@ import { reflect } from '../src';
expectType(App);
}
+
+// reflect should allow to pass any callback
+{
+ const Input: React.FC<{
+ value: string;
+ onChange: (newValue: string) => void;
+ }> = () => null;
+ const changed = createEvent();
+
+ const ReflectedInput = reflect({
+ view: Input,
+ bind: {
+ value: 'plain string',
+ onChange: (e) => {
+ expectType(e);
+ changed(e);
+ },
+ },
+ });
+
+ expectType(ReflectedInput);
+}
+
+// should support useUnit configuration
+{
+ const Input: React.FC<{
+ value: string;
+ onChange: (newValue: string) => void;
+ }> = () => null;
+ const changed = createEvent();
+
+ const ReflectedInput = reflect({
+ view: Input,
+ bind: {
+ value: 'plain string',
+ onChange: (e) => {
+ expectType(e);
+ changed(e);
+ },
+ },
+ useUnitConfig: {
+ forceScope: true,
+ },
+ });
+}
+
+// should not support invalud useUnit configuration
+{
+ const Input: React.FC<{
+ value: string;
+ onChange: (newValue: string) => void;
+ }> = () => null;
+ const changed = createEvent();
+
+ const ReflectedInput = reflect({
+ view: Input,
+ bind: {
+ value: 'plain string',
+ onChange: (e) => {
+ expectType(e);
+ changed(e);
+ },
+ },
+ useUnitConfig: {
+ // @ts-expect-error
+ forseScope: true,
+ },
+ });
+}
+
+// reflect fits ComponentType
+{
+ const Input = (props: PropsWithChildren<{ value: string }>) => null;
+
+ const ReflectedInput = reflect({
+ view: Input,
+ bind: {
+ value: 'plain string',
+ },
+ });
+
+ const Test: ComponentType<{ value: string; children: ReactNode }> = Input;
+}
diff --git a/type-tests/types-variant.tsx b/type-tests/types-variant.tsx
index f54f402..f0cf828 100644
--- a/type-tests/types-variant.tsx
+++ b/type-tests/types-variant.tsx
@@ -1,10 +1,9 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
+import { reflect, variant } from '@effector/reflect';
import { createEvent, createStore } from 'effector';
-import React from 'react';
+import React, { PropsWithChildren } from 'react';
import { expectType } from 'tsd';
-import { variant } from '../src';
-
// basic variant usage
{
const Input: React.FC<{
@@ -52,7 +51,6 @@ import { variant } from '../src';
source: $type,
bind: {
value: $value,
- // @ts-expect-error
onChange: changed,
},
cases: {
@@ -65,29 +63,7 @@ import { variant } from '../src';
expectType(VariableInput);
}
-// variant warns, if no cases provided
-{
- type PageProps = {
- context: {
- route: string;
- };
- };
- const NotFoundPage: React.FC