diff --git a/package.json b/package.json
index 827d8b9..d757bcd 100644
--- a/package.json
+++ b/package.json
@@ -3,16 +3,13 @@
"description": "An implementation of @hotwired/turbo based on remix and morphdom",
"license": "MIT",
"repository": "tchak/coldwired",
- "keywords": [
- "remix",
- "router",
- "turbo",
- "stimulus"
- ],
+ "keywords": ["turbo", "stimulus"],
"scripts": {
"turbo": "turbo run test lint build",
"build": "turbo run build --force",
"test": "turbo run test",
+ "test:webkit": "turbo run test:webkit",
+ "test:firefox": "turbo run test:firefox",
"lint": "turbo run lint",
"clean": "turbo run clean",
"prepare": "pnpm run build",
@@ -22,33 +19,28 @@
"devDependencies": {
"@axodotdev/oranda": "^0.6.1",
"@changesets/cli": "^2.27.1",
- "@remix-run/node": "^2.7.2",
- "@testing-library/dom": "^9.3.4",
- "@typescript-eslint/eslint-plugin": "^7.0.2",
- "@typescript-eslint/parser": "^7.0.2",
- "@vitest/browser": "^1.3.1",
- "@vitest/ui": "^1.3.1",
+ "@testing-library/dom": "^10.0.0",
+ "@typescript-eslint/eslint-plugin": "^7.7.1",
+ "@typescript-eslint/parser": "^7.7.1",
+ "@vitest/browser": "^1.5.2",
+ "@vitest/ui": "^1.5.2",
"c8": "^9.1.0",
"del-cli": "^5.1.0",
- "eslint": "^8.56.0",
- "eslint-config-prettier": "^9.1.0",
- "jsdom": "^24.0.0",
+ "eslint": "^8.50.0",
+ "eslint-config-prettier": "^8.0",
"npm-run-all": "^4.1.5",
- "playwright": "^1.41.2",
+ "playwright": "^1.43.1",
"prettier": "^3.2.5",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "rollup": "^4.12.0",
- "turbo": "^1.12.4",
- "typescript": "^5.3.3",
- "vite": "^5.1.4",
- "vitest": "^1.3.1",
- "webdriverio": "^8.32.3"
+ "rollup": "^4.16.4",
+ "turbo": "^1.13.2",
+ "typescript": "^5.4.5",
+ "vite": "^5.2.10",
+ "vitest": "^1.5.2"
},
"engines": {
"node": ">=16"
},
- "packageManager": "pnpm@8.6.9",
+ "packageManager": "pnpm@8.15.4",
"prettier": {
"singleQuote": true,
"printWidth": 100
diff --git a/packages/actions/package.json b/packages/actions/package.json
index 3b446c5..4ada206 100644
--- a/packages/actions/package.json
+++ b/packages/actions/package.json
@@ -2,27 +2,27 @@
"name": "@coldwired/actions",
"description": "DOM manipulation actions based on morphdom",
"license": "MIT",
- "files": [
- "dist"
- ],
+ "files": ["dist"],
"main": "./dist/index.cjs.js",
"module": "./dist/index.es.js",
- "types": "./dist/types/src/index.d.ts",
+ "types": "./dist/types/index.d.ts",
"exports": {
".": {
"import": "./dist/index.es.js",
"require": "./dist/index.cjs.js"
}
},
+ "type": "module",
"version": "0.11.2",
- "keywords": [
- "turbo"
- ],
+ "keywords": ["turbo"],
"scripts": {
"build": "run-s clean build:*",
"build:vite": "vite build",
"build:tsc": "tsc --emitDeclarationOnly",
+ "dev": "vitest",
"test": "vitest run",
+ "test:webkit": "vitest run --browser.name=webkit",
+ "test:firefox": "vitest run --browser.name=firefox",
"test:ui": "vitest --ui",
"coverage": "vitest run --coverage",
"lint": "run-s lint:*",
@@ -31,14 +31,14 @@
"clean": "del dist coverage node_modules/.vite"
},
"dependencies": {
+ "@coldwired/react": "*",
"@coldwired/utils": "^0.11.1",
- "morphdom": "^2.7.2",
- "tiny-invariant": "^1.3.2"
+ "morphdom": "^2.7.2"
},
"engines": {
"node": ">=16"
},
- "packageManager": "pnpm@8.6.9",
+ "packageManager": "pnpm@8.15.4",
"prettier": {
"singleQuote": true,
"printWidth": 100
@@ -46,24 +46,15 @@
"eslintConfig": {
"root": true,
"parser": "@typescript-eslint/parser",
- "plugins": [
- "@typescript-eslint"
- ],
- "extends": [
- "eslint:recommended",
- "plugin:@typescript-eslint/recommended",
- "prettier"
- ],
+ "plugins": ["@typescript-eslint"],
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-redeclare": "off"
},
"overrides": [
{
- "files": [
- "vite.config.js",
- "vitest.config.ts"
- ],
+ "files": ["vite.config.js", "vitest.config.ts"],
"env": {
"node": true
}
@@ -83,7 +74,10 @@
}
},
"devDependencies": {
- "@hotwired/turbo": "^7.3.0",
- "intersection-observer": "^0.12.2"
+ "@types/react": "^18.2.45",
+ "@types/react-dom": "^18.2.18",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "tiny-invariant": "^1.3.2"
}
}
diff --git a/packages/actions/src/actions-container.test.tsx b/packages/actions/src/actions-container.test.tsx
new file mode 100644
index 0000000..dc57b9c
--- /dev/null
+++ b/packages/actions/src/actions-container.test.tsx
@@ -0,0 +1,208 @@
+import { describe, it, expect, beforeEach } from 'vitest';
+import { getByText, fireEvent, waitFor } from '@testing-library/dom';
+import { StrictMode, useState } from 'react';
+
+import { NAME_ATTRIBUTE, PROPS_ATTRIBUTE, Manifest, encodeProps } from '@coldwired/react';
+
+import { Actions } from '.';
+
+describe('@coldwired/actions', () => {
+ let actions: Actions;
+
+ const DEFAULT_TAG_NAME = 'turbo-fragment';
+ const Counter = ({ label }: { label?: string }) => {
+ const [count, setCount] = useState(0);
+ return (
+
+
+ {label ?? 'Count'}: {count}
+
+
+
+ );
+ };
+ const manifest: Manifest = { Counter };
+
+ beforeEach(async () => {
+ actions?.disconnect();
+ actions = new Actions({
+ element: document.documentElement,
+ container: { loader: (name) => Promise.resolve(manifest[name]) },
+ });
+
+ document.body.innerHTML = `<${DEFAULT_TAG_NAME} id="frag-1" class="loading">
Hello
${DEFAULT_TAG_NAME}>
`;
+ actions.observe();
+ await actions.ready();
+ await actions.mount(document.getElementById('root')!, StrictMode);
+ });
+
+ function layout(content: string) {
+ return `${content}
`;
+ }
+
+ it('render with container', async () => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">Hello
${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">Yolo${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+
+ expect(document.body.innerHTML).toEqual(
+ layout(`<${DEFAULT_TAG_NAME} id="frag-1">Yolo${DEFAULT_TAG_NAME}>`),
+ );
+
+ actions.replace({
+ targets: '#frag-1',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">plop
${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+
+ expect(document.body.innerHTML).toEqual(
+ layout(`<${DEFAULT_TAG_NAME} id="frag-1">plop
${DEFAULT_TAG_NAME}>`),
+ );
+
+ actions.update({
+ targets: '#frag-1',
+ fragment: ``,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+
+ fireEvent.click(getByText(document.body, 'Increment'));
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+ fireEvent.click(getByText(document.body, 'Increment'));
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}><${DEFAULT_TAG_NAME} id="frag-2">Test${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ expect(actions.container?.getCache().size).toEqual(2);
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}><${DEFAULT_TAG_NAME} id="frag-2">Test${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}><${DEFAULT_TAG_NAME} id="frag-2">Test 23${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ expect(actions.container?.getCache().size).toEqual(2);
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}><${DEFAULT_TAG_NAME} id="frag-2">Test 23${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+ });
+
+ fireEvent.click(getByText(document.body, 'Increment'));
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ });
+
+ actions.update({
+ targets: '#main',
+ fragment: `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ });
+ await actions.ready();
+ await waitFor(() => {
+ expect(document.body.innerHTML).toEqual(
+ layout(
+ `<${DEFAULT_TAG_NAME} id="frag-1">${DEFAULT_TAG_NAME}>`,
+ ),
+ );
+ expect(actions.container?.getCache().size).toEqual(1);
+ });
+ });
+});
diff --git a/packages/actions/src/actions.test.ts b/packages/actions/src/actions.test.ts
index b167ea6..ebdda03 100644
--- a/packages/actions/src/actions.test.ts
+++ b/packages/actions/src/actions.test.ts
@@ -39,7 +39,7 @@ describe('@coldwired/actions', () => {
await Promise.resolve();
actions.morph(from, 'World
');
- expect(from.outerHTML).toEqual('World
');
+ expect(from.outerHTML).toEqual('World
');
});
it('should preserve removed classes', async () => {
diff --git a/packages/actions/src/actions.ts b/packages/actions/src/actions.ts
index b3060f1..6fd9d7f 100644
--- a/packages/actions/src/actions.ts
+++ b/packages/actions/src/actions.ts
@@ -12,6 +12,7 @@ import {
focusNextElement,
parseHTMLFragment,
} from '@coldwired/utils';
+import type { Container, ContainerOptions } from '@coldwired/react';
import { ClassListObserver, ClassListObserverDelegate } from './class-list-observer';
import { AttributeObserver, AttributeObserverDelegate } from './attribute-observer';
@@ -56,6 +57,7 @@ export type ActionsOptions = {
element?: Element;
schema?: Schema;
debug?: boolean;
+ container?: Omit;
};
export class Actions {
@@ -67,6 +69,8 @@ export class Actions {
#metadata = new Metadata();
#controller = new AbortController();
+ #containerOptions?: Omit;
+ #container?: Container;
#pending = new Set>();
#pinned = new Map();
@@ -84,6 +88,7 @@ export class Actions {
};
this.#classListObserver = new ClassListObserver(this.#element, this.#delegate);
this.#attributeObserver = new AttributeObserver(this.#element, this.#delegate);
+ this.#containerOptions = options?.container;
}
async ready() {
@@ -102,6 +107,26 @@ export class Actions {
this.#element.addEventListener(ACTIONS_EVENT_TYPE, this.#delegate);
}
+ async mount(root: Element, Layout?: Parameters[1]) {
+ if (!this.#containerOptions) {
+ throw new Error('No container provided');
+ }
+ const mod = await import('@coldwired/react');
+ const container = mod.createContainer({
+ fragmentTagName: this.#schema.fragmentTagName,
+ loadingClassName: this.#schema.loadingClassName,
+ ...this.#containerOptions,
+ });
+ await this.ready();
+ await container.mount(root, Layout);
+ await container.render(this.#element);
+ this.#container = container;
+ }
+
+ get container() {
+ return this.#container;
+ }
+
disconnect() {
this.reset();
this.#classListObserver.disconnect();
@@ -117,6 +142,8 @@ export class Actions {
this.#pending.clear();
this.#pinned.clear();
this.#metadata.clear();
+ this.#container?.destroy();
+ this.#container = undefined;
}
applyActions(actions: (Action | MaterializedAction)[]) {
@@ -222,10 +249,10 @@ export class Actions {
private materializeActions(actions: Action[], element: Element): MaterializedAction[] {
this._debugMaterializeActions(actions, element);
- return actions.map((action) => ({
- ...action,
- targets: getTargetElements(element, action.targets),
- }));
+ return actions.map((action) => {
+ const targets = getTargetElements(element, action.targets);
+ return { ...action, targets };
+ });
}
private async _scheduleActions(actions: Action[], delay?: number): Promise {
@@ -262,6 +289,12 @@ export class Actions {
private _applyActions(actions: MaterializedAction[]) {
this._debugApplyActions(actions);
for (const action of actions) {
+ if (
+ this.#container &&
+ action.targets.some((element) => this.#container?.isInsideFragment(element))
+ ) {
+ throw new Error('Cannot apply action inside fragment');
+ }
if (isFragmentAction(action)) {
this[`_${action.action}`](action);
} else {
@@ -321,6 +354,7 @@ export class Actions {
) {
morph(from, to, {
metadata: this.#metadata,
+ container: this.#container,
...this.#schema,
...options,
});
@@ -561,8 +595,9 @@ class DispatchEventElement extends HTMLElement {
invariant(type, '[dispatch-event] must have "type" attribute');
invariant(target, '[dispatch-event] must have a target element');
- const content = this.querySelector('script[type="application/json"]')
- ?.textContent;
+ const content = this.querySelector(
+ 'script[type="application/json"]',
+ )?.textContent;
const detail = content ? parseEventDetail(content) : null;
dispatch(type, { target, detail });
diff --git a/packages/actions/src/morph.ts b/packages/actions/src/morph.ts
index 7a98159..ced37f7 100644
--- a/packages/actions/src/morph.ts
+++ b/packages/actions/src/morph.ts
@@ -13,6 +13,7 @@ import {
focusNextElement,
type FocusNextOptions,
} from '@coldwired/utils';
+import type { Container } from '@coldwired/react';
import { Metadata } from './metadata';
@@ -20,6 +21,7 @@ type MorphOptions = FocusNextOptions & {
childrenOnly?: boolean;
forceAttribute?: string;
metadata?: Metadata;
+ container?: Container;
};
export function morph(
@@ -54,9 +56,13 @@ function morphToDocumentFragment(
toDocumentFragment.normalize();
if (options?.childrenOnly) {
- const wrapper = toDocumentFragment.ownerDocument.createElement('div');
- wrapper.append(toDocumentFragment);
- morphToElement(fromElement, wrapper, options);
+ if (options.container?.isFragment(fromElement)) {
+ options.container.render(fromElement, toDocumentFragment);
+ } else {
+ const wrapper = toDocumentFragment.ownerDocument.createElement('div');
+ wrapper.append(toDocumentFragment);
+ morphToElement(fromElement, wrapper, options);
+ }
} else {
const [firstChild, secondChild, ...children] = [...toDocumentFragment.childNodes].filter(
isElementOrText,
@@ -83,9 +89,18 @@ function morphToDocumentFragment(
function morphToElement(fromElement: Element, toElement: Element, options?: MorphOptions): void {
const forceAttribute = options?.forceAttribute;
+ if (options?.container?.isInsideFragment(fromElement)) {
+ throw new Error('Cannot morph element inside fragment');
+ }
+
morphdom(fromElement, toElement, {
childrenOnly: options?.childrenOnly,
- onBeforeElUpdated(fromElement: Element, toElement: Element) {
+ onBeforeElUpdated(fromElement, toElement) {
+ if (options?.container?.isFragment(fromElement)) {
+ options.container.render(fromElement, toElement);
+ return false;
+ }
+
const force = forceAttribute ? !!toElement.closest(`[${forceAttribute}="server"]`) : false;
const metadata = options?.metadata?.get(fromElement);
@@ -141,9 +156,16 @@ function morphToElement(fromElement: Element, toElement: Element, options?: Morp
onBeforeNodeDiscarded(node) {
if (isElement(node)) {
focusNextElement(node, options);
+ options?.container?.remove(node);
}
return true;
},
+ onNodeAdded(node) {
+ if (isElement(node)) {
+ options?.container?.render(node);
+ }
+ return node;
+ },
});
if (forceAttribute) {
diff --git a/packages/actions/src/schema.ts b/packages/actions/src/schema.ts
index 36718d0..62b114d 100644
--- a/packages/actions/src/schema.ts
+++ b/packages/actions/src/schema.ts
@@ -1,13 +1,17 @@
export type Schema = {
+ fragmentTagName: string;
forceAttribute: string;
focusGroupAttribute: string;
focusDirectionAttribute: string;
hiddenClassName: string;
+ loadingClassName: string;
};
export const defaultSchema: Schema = {
+ fragmentTagName: 'turbo-fragment',
forceAttribute: 'data-turbo-force',
focusGroupAttribute: 'data-turbo-focus-group',
focusDirectionAttribute: 'data-turbo-focus-direction',
hiddenClassName: 'hidden',
+ loadingClassName: 'loading',
};
diff --git a/packages/actions/test/setup-test-browser-env.ts b/packages/actions/test/setup-test-browser-env.ts
deleted file mode 100644
index 21ee09e..0000000
--- a/packages/actions/test/setup-test-browser-env.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as Turbo from '@hotwired/turbo';
-
-Turbo.session.drive = false;
-Turbo.start();
diff --git a/packages/actions/test/setup-test-env.ts b/packages/actions/test/setup-test-env.ts
deleted file mode 100644
index 0512cbc..0000000
--- a/packages/actions/test/setup-test-env.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { installGlobals } from '@remix-run/node';
-import 'intersection-observer';
-import * as Turbo from '@hotwired/turbo';
-
-Turbo.session.drive = false;
-Turbo.start();
-installGlobals();
-
-class PatchedFormData extends FormData {
- constructor(form?: HTMLFormElement) {
- super();
-
- if (form) {
- for (const element of form.elements) {
- if (isSelectElement(element)) {
- for (const option of element.options) {
- if (option.selected) {
- this.append(element.name, option.value);
- }
- }
- } else if (
- isInputElement(element) &&
- (element.checked || !['radio', 'checkbox'].includes(element.type)) &&
- element.name
- ) {
- this.append(element.name, element.value);
- }
- }
- }
- }
-}
-
-function isSelectElement(element: Element): element is HTMLSelectElement {
- return element.tagName == 'SELECT';
-}
-
-function isInputElement(element: Element): element is HTMLInputElement {
- return element.tagName == 'INPUT' || element.tagName == 'TEXTAREA';
-}
-
-window.FormData = PatchedFormData;
diff --git a/packages/actions/tsconfig.json b/packages/actions/tsconfig.json
index c3c111e..3f12fbb 100644
--- a/packages/actions/tsconfig.json
+++ b/packages/actions/tsconfig.json
@@ -5,6 +5,7 @@
"module": "ES2022",
"lib": ["dom", "dom.iterable", "es2022"],
"moduleResolution": "node",
+ "jsx": "react-jsx",
"strict": true,
"sourceMap": true,
"resolveJsonModule": true,
@@ -15,7 +16,7 @@
"noImplicitReturns": true,
"skipLibCheck": true,
"declaration": true,
- "outDir": "./dist/types",
+ "outDir": "./dist/types"
},
- "include": ["src", "test"]
+ "include": ["src"]
}
diff --git a/packages/actions/vite.config.js b/packages/actions/vite.config.js
deleted file mode 100644
index 894d75f..0000000
--- a/packages/actions/vite.config.js
+++ /dev/null
@@ -1,17 +0,0 @@
-const path = require('path');
-const { defineConfig } = require('vite');
-
-module.exports = defineConfig({
- build: {
- lib: {
- entry: path.resolve(__dirname, 'src/index.ts'),
- fileName: (format) => `index.${format}.js`,
- formats: ['cjs', 'es'],
- },
- rollupOptions: {
- // make sure to externalize deps that shouldn't be bundled
- // into your library
- external: ['@coldwired/utils', 'morphdom'],
- },
- },
-});
diff --git a/packages/actions/vite.config.ts b/packages/actions/vite.config.ts
new file mode 100644
index 0000000..c22caa5
--- /dev/null
+++ b/packages/actions/vite.config.ts
@@ -0,0 +1,15 @@
+import path from 'path';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ build: {
+ lib: {
+ entry: path.resolve(__dirname, 'src/index.ts'),
+ fileName: (format) => `index.${format}.js`,
+ formats: ['cjs', 'es'],
+ },
+ rollupOptions: {
+ external: ['@coldwired/utils', '@coldwired/react', 'morphdom'],
+ },
+ },
+});
diff --git a/packages/actions/vitest.config.ts b/packages/actions/vitest.config.ts
index 724043a..f87840b 100644
--- a/packages/actions/vitest.config.ts
+++ b/packages/actions/vitest.config.ts
@@ -5,12 +5,9 @@ import { defineConfig } from 'vite';
export default defineConfig({
test: {
globals: true,
- environment: 'jsdom',
- //setupFiles: ['./test/setup-test-browser-env.ts'],
- setupFiles: ['./test/setup-test-env.ts'],
browser: {
- enabled: false,
- headless: false,
+ enabled: true,
+ headless: true,
name: 'firefox',
provider: 'playwright',
},
diff --git a/packages/react/.eslintignore b/packages/react/.eslintignore
new file mode 100644
index 0000000..1521c8b
--- /dev/null
+++ b/packages/react/.eslintignore
@@ -0,0 +1 @@
+dist
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
new file mode 100644
index 0000000..e69de29
diff --git a/packages/react/package.json b/packages/react/package.json
new file mode 100644
index 0000000..d523734
--- /dev/null
+++ b/packages/react/package.json
@@ -0,0 +1,81 @@
+{
+ "name": "@coldwired/react",
+ "description": "React container for use with @coldwired",
+ "license": "MIT",
+ "files": ["dist"],
+ "main": "./dist/index.cjs.js",
+ "module": "./dist/index.es.js",
+ "types": "./dist/types/index.d.ts",
+ "exports": {
+ ".": {
+ "import": "./dist/index.es.js",
+ "require": "./dist/index.cjs.js"
+ }
+ },
+ "type": "module",
+ "version": "0.1.0",
+ "scripts": {
+ "build": "run-s clean build:*",
+ "build:vite": "vite build",
+ "build:tsc": "tsc --emitDeclarationOnly",
+ "dev": "vitest",
+ "test": "vitest run",
+ "test:webkit": "vitest run --browser.name=webkit",
+ "test:firefox": "vitest run --browser.name=firefox",
+ "coverage": "vitest run --coverage",
+ "lint": "run-s lint:*",
+ "lint:types": "tsc --noEmit",
+ "lint:js": "eslint . --ext .ts,.tsx",
+ "clean": "del dist coverage node_modules/.vite"
+ },
+ "dependencies": {
+ "@coldwired/utils": "^0.11.4"
+ },
+ "devDependencies": {
+ "html-entities": "^2.4.0",
+ "@types/react": "^18.2.45",
+ "@types/react-dom": "^18.2.18"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "packageManager": "pnpm@8.15.4",
+ "prettier": {
+ "singleQuote": true,
+ "printWidth": 100
+ },
+ "eslintConfig": {
+ "root": true,
+ "parser": "@typescript-eslint/parser",
+ "plugins": ["@typescript-eslint"],
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
+ "rules": {
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-redeclare": "off"
+ },
+ "overrides": [
+ {
+ "files": ["vite.config.js", "vitest.config.ts"],
+ "env": {
+ "node": true
+ }
+ }
+ ]
+ },
+ "publishConfig": {
+ "access": "public",
+ "registry": "https://registry.npmjs.org/"
+ },
+ "release-it": {
+ "npm": {
+ "skipChecks": true
+ },
+ "github": {
+ "release": true
+ }
+ }
+}
diff --git a/packages/react/src/container.test.tsx b/packages/react/src/container.test.tsx
new file mode 100644
index 0000000..7d577ca
--- /dev/null
+++ b/packages/react/src/container.test.tsx
@@ -0,0 +1,62 @@
+import { describe, it, expect } from 'vitest';
+import { useState, StrictMode } from 'react';
+
+import { createContainer, NAME_ATTRIBUTE, type Manifest } from '.';
+
+const DEFAULT_TAG_NAME = 'turbo-fragment';
+
+describe('@coldwired/react', () => {
+ describe('container', () => {
+ const Counter = () => {
+ const [count, setCount] = useState(0);
+ return (
+
+
Count: {count}
+
+
+ );
+ };
+ const manifest: Manifest = { Counter };
+
+ it('render simple fragment', async () => {
+ const container = createContainer({
+ loader: (name) => Promise.resolve(manifest[name]),
+ fragmentTagName: DEFAULT_TAG_NAME,
+ loadingClassName: 'loading',
+ });
+ document.body.innerHTML = `<${DEFAULT_TAG_NAME}>Hello
${DEFAULT_TAG_NAME}>`;
+ await container.mount(document.getElementById('root')!, StrictMode);
+ await container.render(document.body);
+
+ expect(document.body.innerHTML).toEqual(
+ `<${DEFAULT_TAG_NAME}>Hello
${DEFAULT_TAG_NAME}>`,
+ );
+
+ await container.render(
+ document.body.firstElementChild!,
+ `Hello World!
`,
+ );
+ expect(document.body.innerHTML).toEqual(
+ `<${DEFAULT_TAG_NAME}>Hello World!
${DEFAULT_TAG_NAME}>`,
+ );
+ expect(container.getCache().size).toEqual(1);
+ container.destroy();
+ });
+
+ it('render fragment with component', async () => {
+ const container = createContainer({
+ loader: (name) => Promise.resolve(manifest[name]),
+ fragmentTagName: DEFAULT_TAG_NAME,
+ loadingClassName: 'loading',
+ });
+ document.body.innerHTML = `<${DEFAULT_TAG_NAME}>${DEFAULT_TAG_NAME}>`;
+ await container.mount(document.getElementById('root')!, StrictMode);
+ await container.render(document.body);
+
+ expect(document.body.innerHTML).toEqual(
+ `<${DEFAULT_TAG_NAME}>${DEFAULT_TAG_NAME}>`,
+ );
+ container.destroy();
+ });
+ });
+});
diff --git a/packages/react/src/container.ts b/packages/react/src/container.ts
new file mode 100644
index 0000000..9e03ac6
--- /dev/null
+++ b/packages/react/src/container.ts
@@ -0,0 +1,250 @@
+import { createPortal } from 'react-dom';
+import { createRoot } from 'react-dom/client';
+import {
+ useSyncExternalStore,
+ useEffect,
+ createElement,
+ Fragment,
+ type ReactNode,
+ type ComponentType,
+} from 'react';
+import { parseHTMLFragment, isElement } from '@coldwired/utils';
+
+import { hydrate, preload, type Manifest } from './react-tree-builder';
+
+export type Loader = (name: string) => Promise;
+
+export interface Container {
+ mount(rootElement: Element, Layout?: ComponentType<{ children: ReactNode }>): Promise;
+ render(element: Element, fragment?: Element | DocumentFragment | string): Promise;
+ remove(element: Element): void;
+ isFragment(element: Element): boolean;
+ isInsideFragment(element: Element): boolean;
+ destroy(): void;
+ getCache(): Map;
+}
+
+export interface ContainerOptions {
+ loader: Loader;
+ fragmentTagName: string;
+ loadingClassName: string;
+ manifest?: Manifest;
+}
+
+export function createContainer({
+ loader,
+ manifest: preloadedManifest,
+ fragmentTagName,
+ loadingClassName,
+}: ContainerOptions): Container {
+ let isDestroyed = false;
+ let cache = new Map();
+ const mounted = new Map<
+ Element,
+ (fragment: Element | DocumentFragment | string) => Promise
+ >();
+ const subscriptions = new Set<() => void>();
+ const manifest: Manifest = Object.assign({}, preloadedManifest);
+
+ const notify = () => {
+ if (!isDestroyed) {
+ cache = new Map(cache);
+ subscriptions.forEach((callback) => callback());
+ }
+ };
+
+ const render = async (
+ element: Element,
+ fragmentOrHTML: Element | DocumentFragment | string,
+ reset: boolean,
+ ) => {
+ const fragment =
+ typeof fragmentOrHTML == 'string'
+ ? parseHTMLFragment(fragmentOrHTML, element.ownerDocument)
+ : fragmentOrHTML;
+ if (isElement(fragment) && fragment.tagName.toLowerCase() != fragmentTagName) {
+ throw new Error('Cannot rerender with a non-fragment element');
+ }
+ await preload(fragment, (names) => manifestLoader(names, loader, manifest));
+ const tree = hydrate(fragment, manifest);
+ if (reset) {
+ element.innerHTML = '';
+ }
+ cache.set(element, tree);
+ notify();
+ element.classList.remove(loadingClassName);
+ if (element.classList.length == 0) {
+ element.removeAttribute('class');
+ }
+ };
+
+ const registerDestroyer = (element: Element) => {
+ const observer = new MutationObserver((mutations) => {
+ const removedNodes = mutations.flatMap((mutation) => Array.from(mutation.removedNodes));
+ const node = removedNodes.find((node) => node == element);
+ if (node && !node.isConnected) {
+ mounted.delete(element);
+ cache.delete(element);
+ observer.disconnect();
+ notify();
+ }
+ });
+ observer.observe(element.parentNode!, { childList: true });
+ };
+
+ const create = async (element: Element) => {
+ if (!isDestroyed && !mounted.has(element)) {
+ mounted.set(element, (fragmentOrHTML) => render(element, fragmentOrHTML, false));
+ registerDestroyer(element);
+ await render(element, element, true);
+ }
+ };
+
+ const getSnapshot = () => cache;
+ const subscribe = (callback: () => void) => {
+ if (!isDestroyed) {
+ subscriptions.add(callback);
+ }
+ return () => {
+ subscriptions.delete(callback);
+ };
+ };
+ let unmount: (() => void) | undefined;
+
+ return {
+ async mount(providerRootElement, Layout = ({ children }) => children) {
+ if (unmount) {
+ throw new Error('Container is already mounted');
+ }
+ if (isDestroyed) {
+ throw new Error('Container is destroyed');
+ }
+ let onMounted: () => void = () => {};
+ const ready = new Promise((resolve) => {
+ onMounted = resolve;
+ });
+ unmount = createProvider({
+ providerRootElement,
+ subscribe,
+ getSnapshot,
+ onMounted,
+ Layout,
+ });
+
+ await ready;
+ },
+ async render(element, fragmentOrHTML) {
+ if (fragmentOrHTML) {
+ await mounted.get(element)?.(fragmentOrHTML);
+ } else {
+ if (element.tagName.toLowerCase() == fragmentTagName) {
+ await create(element);
+ } else {
+ const elements = Array.from(element.querySelectorAll(fragmentTagName));
+ if (elements.length) {
+ await Promise.all(elements.map(create));
+ }
+ }
+ }
+ },
+ remove(element) {
+ if (mounted.has(element)) {
+ mounted.delete(element);
+ cache.delete(element);
+ notify();
+ }
+ },
+ isFragment(element) {
+ return mounted.has(element);
+ },
+ isInsideFragment(element) {
+ return !!element.closest(fragmentTagName) && element.tagName.toLowerCase() != fragmentTagName;
+ },
+ destroy() {
+ isDestroyed = true;
+ for (const element of cache.keys()) {
+ element.remove();
+ }
+ cache.clear();
+ notify();
+ subscriptions.clear();
+ for (const name of Object.keys(manifest)) {
+ delete manifest[name];
+ }
+ mounted.clear();
+ unmount?.();
+ },
+ getCache() {
+ return cache;
+ },
+ };
+}
+
+function createProvider({
+ providerRootElement,
+ subscribe,
+ getSnapshot,
+ Layout,
+ onMounted,
+}: {
+ providerRootElement: Element;
+ subscribe(callback: () => void): () => void;
+ getSnapshot(): Map;
+ Layout: ComponentType<{ children: ReactNode }>;
+ onMounted: () => void;
+}) {
+ const root = createRoot(providerRootElement);
+ root.render(
+ createElement(
+ Layout,
+ null,
+ createElement(ContainerProvider, { subscribe, getSnapshot, onMounted }),
+ ),
+ );
+ return () => root.unmount();
+}
+
+function ContainerProvider({
+ subscribe,
+ getSnapshot,
+ onMounted,
+}: {
+ subscribe(callback: () => void): () => void;
+ getSnapshot(): Map;
+ onMounted: () => void;
+}) {
+ useEffect(onMounted, []);
+ const cache = useSyncExternalStore(subscribe, getSnapshot);
+
+ return createElement(
+ Fragment,
+ null,
+ ...Array.from(cache).map(([element, content]) =>
+ createPortal(content, element, getKeyForElement(element)),
+ ),
+ );
+}
+
+const keys = new WeakMap();
+
+function getKeyForElement(element: Element): string {
+ let key = keys.get(element);
+ if (!key) {
+ key = Math.random().toString(36).slice(2);
+ keys.set(element, key);
+ }
+ return key;
+}
+
+async function manifestLoader(names: string[], loader: Loader, manifest: Manifest) {
+ await Promise.all(
+ names
+ .filter((name) => !manifest[name])
+ .map((name) =>
+ loader(name).then((component) => {
+ manifest[name] = component;
+ }),
+ ),
+ );
+ return manifest;
+}
diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts
new file mode 100644
index 0000000..0e78e55
--- /dev/null
+++ b/packages/react/src/index.ts
@@ -0,0 +1,2 @@
+export * from './container';
+export * from './react-tree-builder';
diff --git a/packages/react/src/react-tree-builder.test.tsx b/packages/react/src/react-tree-builder.test.tsx
new file mode 100644
index 0000000..f7181ec
--- /dev/null
+++ b/packages/react/src/react-tree-builder.test.tsx
@@ -0,0 +1,147 @@
+import { describe, it, expect } from 'vitest';
+import { renderToStaticMarkup } from 'react-dom/server';
+import type { ReactNode } from 'react';
+import { parseHTMLFragment } from '@coldwired/utils';
+
+import { createReactTree, hydrate, NAME_ATTRIBUTE } from './react-tree-builder';
+
+function Greeting({ firstName, lastName }: { firstName: string; lastName: string }) {
+ return (
+
+ Bonjour {firstName} {lastName} !
+
+ );
+}
+
+function FieldSet({
+ children,
+ legend,
+ lang,
+}: {
+ children: ReactNode;
+ legend: ReactNode;
+ lang: string;
+}) {
+ return (
+
+ );
+}
+
+describe('@coldwired/react', () => {
+ describe('createReactTree', () => {
+ it('render simple tree', () => {
+ const tree = createReactTree(
+ { tagName: 'div', attributes: { className: 'title' }, children: 'Hello' },
+ {},
+ );
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe('Hello
');
+ });
+
+ it('render complex tree', () => {
+ const tree = createReactTree(
+ {
+ tagName: 'div',
+ attributes: { className: 'container' },
+ children: [
+ { tagName: 'h1', attributes: {}, children: 'Title' },
+ 'Hello ',
+ 'World',
+ { tagName: 'input', attributes: { defaultValue: 'test', maxLength: '2' } },
+ ],
+ },
+ {},
+ );
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe(
+ 'Title
Hello World',
+ );
+ });
+
+ it('render component', () => {
+ const tree = createReactTree(
+ [
+ {
+ name: 'Greeting',
+ props: { firstName: 'John', lastName: 'Doe' },
+ },
+ {
+ tagName: 'form',
+ attributes: {},
+ children: [
+ {
+ name: 'FieldSet',
+ props: {
+ lang: 'fr',
+ legend: 'Test',
+ },
+ children: 'Hello World',
+ },
+ {
+ name: 'FieldSet',
+ props: {
+ lang: 'en',
+ legend: { tagName: 'span', attributes: { className: 'blue' }, children: 'Test' },
+ },
+ children: [
+ {
+ name: 'Greeting',
+ props: { firstName: 'Greer', lastName: 'Pilkington' },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ { Greeting, FieldSet },
+ );
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe(
+ 'Bonjour John Doe !
',
+ );
+ });
+ });
+
+ describe('hydrate', () => {
+ it('hydrate simple tree', async () => {
+ const fragment = parseHTMLFragment('Hello
', document);
+ const tree = hydrate(fragment, {});
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe('Hello
');
+ });
+
+ it('render complex tree', () => {
+ const fragment = parseHTMLFragment(
+ 'Title
Hello World',
+ document,
+ );
+ const tree = hydrate(fragment, {});
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe(
+ 'Title
Hello World',
+ );
+ });
+
+ it('render component', () => {
+ const greeting1 = ``;
+ const greeting2 = ``;
+ const fieldset1 = `Hello World`;
+ const fieldset2 = `Test${greeting2}`;
+
+ const tree = hydrate(
+ parseHTMLFragment(`${greeting1}`, document),
+ {
+ Greeting,
+ FieldSet,
+ },
+ );
+ const html = renderToStaticMarkup(tree);
+ expect(html).toBe(
+ 'Bonjour John Doe !
',
+ );
+ });
+ });
+});
diff --git a/packages/react/src/react-tree-builder.ts b/packages/react/src/react-tree-builder.ts
new file mode 100644
index 0000000..1afc504
--- /dev/null
+++ b/packages/react/src/react-tree-builder.ts
@@ -0,0 +1,374 @@
+import { createElement, Fragment, type ComponentType, type ReactNode, type Key } from 'react';
+import { decode as htmlDecode, encode as htmlEncode } from 'html-entities';
+
+type Child = string | Element | Component;
+type PrimitiveValue = string | number | boolean | null | undefined;
+type JSONValue = PrimitiveValue | Array | { [key: string]: JSONValue };
+type ReactValue =
+ | PrimitiveValue
+ | Date
+ | bigint
+ | Array
+ | { [key: string]: ReactValue };
+type Element = {
+ tagName: string;
+ attributes: Record;
+ children?: Child | Child[];
+};
+type Component = {
+ name: string;
+ props: Record;
+ children?: Child | Child[];
+};
+export type Manifest = Record>;
+
+export const NAME_ATTRIBUTE = '$name';
+export const PROPS_ATTRIBUTE = '$props';
+
+function isElement(node: JSONValue | Element | Component): node is Element {
+ return !!(node && typeof node == 'object' && 'tagName' in node && 'attributes' in node);
+}
+
+function isComponent(node: JSONValue | Element | Component): node is Component {
+ return !!(node && typeof node == 'object' && NAME_ATTRIBUTE in node && PROPS_ATTRIBUTE in node);
+}
+
+export type DocumentFragmentLike = DocumentFragment | { childNodes: NodeListOf };
+
+export function hydrate(
+ documentOrFragment: Document | DocumentFragmentLike,
+ manifest: Manifest,
+): ReactNode {
+ const childNodes = getChildNodes(documentOrFragment);
+ const { children } = hydrateChildNodes(childNodes);
+ return createReactTree(children, manifest);
+}
+
+export function preload(
+ documentOrFragment: Document | DocumentFragmentLike,
+ loader: (names: string[]) => Promise,
+): Promise {
+ const childNodes = getChildNodes(documentOrFragment);
+ const componentNames = [
+ ...new Set(
+ Array.from(childNodes).flatMap((childNode) => {
+ if (isElementNode(childNode)) {
+ if (childNode.tagName.toLowerCase() == 'react-component') {
+ return childNode.getAttribute(NAME_ATTRIBUTE)!;
+ }
+ return Array.from(childNode.querySelectorAll('react-component')).map(
+ (element) => element.getAttribute(NAME_ATTRIBUTE)!,
+ );
+ }
+ return [];
+ }),
+ ),
+ ];
+ return loader(componentNames);
+}
+
+export function createReactTree(tree: Child | Child[], manifest: Manifest): ReactNode {
+ if (Array.isArray(tree)) {
+ return createElement(
+ Fragment,
+ {},
+ tree.map((child, i) => createChild(child, manifest, i)),
+ );
+ } else if (typeof tree == 'string') {
+ return createElement(Fragment, {}, tree);
+ }
+ return createElementOrComponent(tree, manifest);
+}
+
+function getChildNodes(documentOrFragment: Document | DocumentFragmentLike) {
+ return 'body' in documentOrFragment
+ ? documentOrFragment.body.childNodes
+ : documentOrFragment.childNodes;
+}
+
+type HydrateResult = {
+ children: Child[];
+ props: Record;
+};
+
+function hydrateChildNodes(childNodes: NodeListOf): HydrateResult {
+ const result: HydrateResult = { children: [], props: {} };
+ childNodes.forEach((childNode) => {
+ if (isTextNode(childNode) && childNode.textContent) {
+ result.children.push(childNode.textContent);
+ } else if (isElementNode(childNode)) {
+ const tagName = childNode.tagName.toLowerCase();
+ const { children, props } = hydrateChildNodes(childNode.childNodes);
+ if (tagName == 'react-component') {
+ const name = childNode.getAttribute(NAME_ATTRIBUTE);
+ if (!name) {
+ throw new Error(`Missing "${NAME_ATTRIBUTE}" attribute on `);
+ }
+ result.children.push({
+ name,
+ props: { ...hydrateProps(childNode), ...props },
+ children: children.length > 0 ? children : undefined,
+ });
+ } else {
+ if (Object.keys(props).length > 0) {
+ throw new Error(' only allowed as direct child of ');
+ }
+ if (tagName == 'react-slot') {
+ const name = childNode.getAttribute(NAME_ATTRIBUTE);
+ if (!name) {
+ throw new Error(`Missing "${NAME_ATTRIBUTE}" attribute on `);
+ }
+ if (children.length == 1) {
+ const child = children[0];
+ if (typeof child == 'string') {
+ result.props[name] = {
+ name: 'Fragment',
+ props: {},
+ children: child,
+ };
+ } else {
+ result.props[name] = child;
+ }
+ } else {
+ result.props[name] = {
+ name: 'Fragment',
+ props: {},
+ children,
+ };
+ }
+ } else {
+ result.children.push({
+ tagName,
+ attributes: Array.from(childNode.attributes).reduce(
+ (attrs, attr) => ({ ...attrs, [attr.name]: attr.value }),
+ {},
+ ),
+ children: children.length > 0 ? children : undefined,
+ });
+ }
+ }
+ }
+ });
+ return result;
+}
+
+export function encodeProps(props: Component['props']): string {
+ return htmlEncode(JSON.stringify(props));
+}
+
+export function decodeProps(props: string): Component['props'] {
+ return JSON.parse(htmlDecode(props));
+}
+
+function hydrateProps(childNode: HTMLElement): Component['props'] {
+ const serializedProps = childNode.getAttribute(PROPS_ATTRIBUTE);
+ const props = Object.fromEntries(
+ Array.from(childNode.attributes)
+ .filter((attr) => attr.name != NAME_ATTRIBUTE && attr.name != PROPS_ATTRIBUTE)
+ .map((attr) => [attr.name, attr.value]),
+ );
+ return Object.assign(props, serializedProps ? decodeProps(serializedProps) : {});
+}
+
+function createElementOrComponent(
+ child: Element | Component,
+ manifest: Manifest,
+ key?: Key,
+): ReactNode {
+ if ('tagName' in child) {
+ const attributes = Object.fromEntries(
+ Object.entries(child.attributes).map(([key, value]) => [
+ transformAttributeName(key),
+ transformAttributeValue(key, value),
+ ]),
+ );
+ attributes.key = attributes.id ?? key;
+ return createElement(
+ child.tagName,
+ attributes,
+ Array.isArray(child.children)
+ ? child.children.map((child, i) => createChild(child, manifest, i))
+ : child.children
+ ? createChild(child.children, manifest)
+ : undefined,
+ );
+ }
+ const ComponentImpl = child.name == 'Fragment' ? Fragment : manifest[child.name];
+ if (!ComponentImpl) {
+ throw new Error(`Unknown component: ${child.name}`);
+ }
+ const props: { [key: string]: ReactValue } = Object.fromEntries(
+ Object.entries(child.props).map(([key, value]) => {
+ if (isElement(value) || isComponent(value)) {
+ return [transformPropName(key), createElementOrComponent(value, manifest)];
+ }
+ return [transformPropName(key), transformPropValue(value)];
+ }),
+ );
+ props.key = props.id ?? key;
+ return createElement(
+ ComponentImpl,
+ props,
+ Array.isArray(child.children)
+ ? child.children.map((child, i) => createChild(child, manifest, i))
+ : child.children
+ ? createChild(child.children, manifest)
+ : undefined,
+ );
+}
+
+function createChild(child: Child, manifest: Manifest, key?: Key): ReactNode | string {
+ if (typeof child == 'string') {
+ return child;
+ }
+ return createElementOrComponent(child, manifest, key);
+}
+
+function transformAttributeName(name: string) {
+ const name_ = cebabCase(name);
+ if (attributeMap[name_]) {
+ return attributeMap[name_];
+ } else if (name_.startsWith('aria-')) {
+ return name_;
+ }
+ return camelcase(name_);
+}
+
+function transformAttributeValue(name: string, value: string) {
+ if (name == 'style') {
+ return parseStyleAttribute(value);
+ }
+ if (booleanAttribute.includes(name)) {
+ return value == name || value == 'true' || value == '1' || value == '';
+ }
+ return value;
+}
+
+function transformPropName(name: string) {
+ if (defaultAttributeMap[name]) {
+ return name;
+ }
+ return transformAttributeName(name);
+}
+
+function transformPropValue(value: JSONValue): ReactValue {
+ if (isPlainObject(value)) {
+ return Object.fromEntries(
+ Object.entries(value).map(([key, value]) => [key, transformPropValue(value)]),
+ );
+ }
+ if (Array.isArray(value)) {
+ return value.map(transformPropValue);
+ }
+ if (typeof value == 'string') {
+ return transformStringValue(value);
+ }
+ return value;
+}
+
+function transformStringValue(value: string): ReactValue {
+ if (value[0] == '$') {
+ switch (value[1]) {
+ case '$':
+ // This was an escaped string value.
+ return value.slice(1);
+ case 'D':
+ // Date
+ return new Date(Date.parse(value.slice(2)));
+ case 'n':
+ // BigInt
+ return BigInt(value.slice(2));
+ }
+ }
+ return value;
+}
+
+const reactAttributeMap: Record = {
+ 'accept-charset': 'acceptCharset',
+ accesskey: 'accessKey',
+ allowfullscreen: 'allowFullScreen',
+ allowtransparency: 'allowTransparency',
+ autocomplete: 'autoComplete',
+ autofocus: 'autoFocus',
+ autoplay: 'autoPlay',
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing',
+ charset: 'charSet',
+ class: 'className',
+ colspan: 'colSpan',
+ contenteditable: 'contentEditable',
+ contextmenu: 'contextMenu',
+ crossorigin: 'crossOrigin',
+ datetime: 'dateTime',
+ enctype: 'encType',
+ formaction: 'formAction',
+ formenctype: 'formEncType',
+ formmethod: 'formMethod',
+ formnovalidate: 'formNoValidate',
+ formtarget: 'formTarget',
+ frameborder: 'frameBorder',
+ hreflang: 'hrefLang',
+ for: 'htmlFor',
+ inputmode: 'inputMode',
+ tabindex: 'tabIndex',
+ usemap: 'useMap',
+ maxlength: 'maxLength',
+ minlength: 'minLength',
+ readonly: 'readOnly',
+ srcdoc: 'srcDoc',
+ srclang: 'srcLang',
+ srcset: 'srcSet',
+ spellcheck: 'spellCheck',
+};
+
+const defaultAttributeMap: Record = {
+ value: 'defaultValue',
+ checked: 'defaultChecked',
+ selected: 'defaultSelected',
+};
+
+const attributeMap = { ...reactAttributeMap, ...defaultAttributeMap };
+
+const booleanAttribute = [
+ 'allowfullscreen',
+ 'autofocus',
+ 'checked',
+ 'disabled',
+ 'formnovalidate',
+ 'hidden',
+ 'multiple',
+ 'novalidate',
+ 'readonly',
+ 'required',
+ 'selected',
+];
+
+const isElementNode = (node: Node): node is HTMLElement => node.nodeType == Node.ELEMENT_NODE;
+const isTextNode = (node: Node): node is Text => node.nodeType == Node.TEXT_NODE;
+
+function parseStyleAttribute(styleString: string): Record {
+ return Object.fromEntries(
+ styleString
+ .split(';')
+ .filter((pair) => !!pair.trim())
+ .map((pair) => {
+ const [key, value] = pair.split(':');
+ if (key && value) {
+ return [camelcase(key).trim(), value.trim()];
+ }
+ throw new Error(`Invalid style attribute: ${styleString}`);
+ }),
+ );
+}
+
+function camelcase(str: string) {
+ return str.replace(/-([a-z])/g, ([, a]) => a.toUpperCase());
+}
+
+function cebabCase(str: string) {
+ return str.replace(/_/g, '-');
+}
+
+function isPlainObject(value: JSONValue): value is { [key: string]: JSONValue } {
+ return typeof value == 'object' && value != null && value.constructor == Object;
+}
diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json
new file mode 100644
index 0000000..3f12fbb
--- /dev/null
+++ b/packages/react/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "useDefineForClassFields": true,
+ "target": "ES2019",
+ "module": "ES2022",
+ "lib": ["dom", "dom.iterable", "es2022"],
+ "moduleResolution": "node",
+ "jsx": "react-jsx",
+ "strict": true,
+ "sourceMap": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noImplicitReturns": true,
+ "skipLibCheck": true,
+ "declaration": true,
+ "outDir": "./dist/types"
+ },
+ "include": ["src"]
+}
diff --git a/packages/react/vite.config.ts b/packages/react/vite.config.ts
new file mode 100644
index 0000000..84e08dd
--- /dev/null
+++ b/packages/react/vite.config.ts
@@ -0,0 +1,15 @@
+import path from 'path';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ build: {
+ lib: {
+ entry: path.resolve(__dirname, 'src/index.ts'),
+ fileName: (format) => `index.${format}.js`,
+ formats: ['cjs', 'es'],
+ },
+ rollupOptions: {
+ external: ['react', 'react-dom', 'react-dom/client'],
+ },
+ },
+});
diff --git a/packages/react/vitest.config.ts b/packages/react/vitest.config.ts
new file mode 100644
index 0000000..97694fe
--- /dev/null
+++ b/packages/react/vitest.config.ts
@@ -0,0 +1,15 @@
+///
+
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ test: {
+ globals: true,
+ browser: {
+ enabled: true,
+ headless: true,
+ name: 'chromium',
+ provider: 'playwright',
+ },
+ },
+});
diff --git a/packages/turbo-stream/package.json b/packages/turbo-stream/package.json
index 20a8305..2088039 100644
--- a/packages/turbo-stream/package.json
+++ b/packages/turbo-stream/package.json
@@ -2,28 +2,27 @@
"name": "@coldwired/turbo-stream",
"description": "A `turbo-stream` implementation based on @coldwired/actions",
"license": "MIT",
- "files": [
- "dist"
- ],
+ "files": ["dist"],
"main": "./dist/index.cjs.js",
"module": "./dist/index.es.js",
- "types": "./dist/types/src/index.d.ts",
+ "types": "./dist/types/index.d.ts",
"exports": {
".": {
"import": "./dist/index.es.js",
"require": "./dist/index.cjs.js"
}
},
+ "type": "module",
"version": "0.11.1",
- "keywords": [
- "turbo"
- ],
+ "keywords": ["turbo"],
"scripts": {
"build": "run-s clean build:*",
"build:vite": "vite build",
"build:tsc": "tsc --emitDeclarationOnly",
"dev": "vitest",
"test": "vitest run",
+ "test:webkit": "vitest run --browser.name=webkit",
+ "test:firefox": "vitest run --browser.name=firefox",
"coverage": "vitest run --coverage",
"lint": "run-s lint:*",
"lint:types": "tsc --noEmit",
@@ -38,7 +37,7 @@
"engines": {
"node": ">=16"
},
- "packageManager": "pnpm@8.6.9",
+ "packageManager": "pnpm@8.15.4",
"prettier": {
"singleQuote": true,
"printWidth": 100
@@ -46,24 +45,15 @@
"eslintConfig": {
"root": true,
"parser": "@typescript-eslint/parser",
- "plugins": [
- "@typescript-eslint"
- ],
- "extends": [
- "eslint:recommended",
- "plugin:@typescript-eslint/recommended",
- "prettier"
- ],
+ "plugins": ["@typescript-eslint"],
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-redeclare": "off"
},
"overrides": [
{
- "files": [
- "vite.config.js",
- "vitest.config.ts"
- ],
+ "files": ["vite.config.js", "vitest.config.ts"],
"env": {
"node": true
}
diff --git a/packages/turbo-stream/src/turbo-stream.test.ts b/packages/turbo-stream/src/turbo-stream.test.ts
index e68fe6d..0b9a184 100644
--- a/packages/turbo-stream/src/turbo-stream.test.ts
+++ b/packages/turbo-stream/src/turbo-stream.test.ts
@@ -12,7 +12,7 @@ describe('@coldwired/turbo-stream', () => {
actions?.observe();
actions = new Actions({ element: document.documentElement });
document.body.innerHTML = '';
- actions.disconnect();
+ //actions.disconnect();
});
it('should append', async () => {
diff --git a/packages/turbo-stream/test/setup-test-env.ts b/packages/turbo-stream/test/setup-test-env.ts
deleted file mode 100644
index 336b5be..0000000
--- a/packages/turbo-stream/test/setup-test-env.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { installGlobals } from '@remix-run/node';
-
-installGlobals();
-
-class PatchedFormData extends FormData {
- constructor(form?: HTMLFormElement) {
- super();
-
- if (form) {
- for (const element of form.elements) {
- if (isSelectElement(element)) {
- for (const option of element.options) {
- if (option.selected) {
- this.append(element.name, option.value);
- }
- }
- } else if (
- isInputElement(element) &&
- (element.checked || !['radio', 'checkbox'].includes(element.type)) &&
- element.name
- ) {
- this.append(element.name, element.value);
- }
- }
- }
- }
-}
-
-function isSelectElement(element: Element): element is HTMLSelectElement {
- return element.tagName == 'SELECT';
-}
-
-function isInputElement(element: Element): element is HTMLInputElement {
- return element.tagName == 'INPUT' || element.tagName == 'TEXTAREA';
-}
-
-window.FormData = PatchedFormData;
diff --git a/packages/turbo-stream/tsconfig.json b/packages/turbo-stream/tsconfig.json
index c3c111e..dc5f0a1 100644
--- a/packages/turbo-stream/tsconfig.json
+++ b/packages/turbo-stream/tsconfig.json
@@ -15,7 +15,7 @@
"noImplicitReturns": true,
"skipLibCheck": true,
"declaration": true,
- "outDir": "./dist/types",
+ "outDir": "./dist/types"
},
- "include": ["src", "test"]
+ "include": ["src"]
}
diff --git a/packages/turbo-stream/vite.config.js b/packages/turbo-stream/vite.config.ts
similarity index 57%
rename from packages/turbo-stream/vite.config.js
rename to packages/turbo-stream/vite.config.ts
index 9702e69..75b9063 100644
--- a/packages/turbo-stream/vite.config.js
+++ b/packages/turbo-stream/vite.config.ts
@@ -1,7 +1,7 @@
-const path = require('path');
-const { defineConfig } = require('vite');
+import path from 'path';
+import { defineConfig } from 'vite';
-module.exports = defineConfig({
+export default defineConfig({
build: {
lib: {
entry: path.resolve(__dirname, 'src/index.ts'),
@@ -9,8 +9,6 @@ module.exports = defineConfig({
formats: ['cjs', 'es'],
},
rollupOptions: {
- // make sure to externalize deps that shouldn't be bundled
- // into your library
external: ['@coldwired/utils', '@coldwired/actions'],
},
},
diff --git a/packages/turbo-stream/vitest.config.ts b/packages/turbo-stream/vitest.config.ts
index f2a60e4..97694fe 100644
--- a/packages/turbo-stream/vitest.config.ts
+++ b/packages/turbo-stream/vitest.config.ts
@@ -5,7 +5,11 @@ import { defineConfig } from 'vite';
export default defineConfig({
test: {
globals: true,
- environment: 'jsdom',
- setupFiles: ['./test/setup-test-env.ts'],
+ browser: {
+ enabled: true,
+ headless: true,
+ name: 'chromium',
+ provider: 'playwright',
+ },
},
});
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 843a8ed..89c55d0 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -2,18 +2,17 @@
"name": "@coldwired/utils",
"description": "Utils for use with @coldwired",
"license": "MIT",
- "files": [
- "dist"
- ],
+ "files": ["dist"],
"main": "./dist/index.cjs.js",
"module": "./dist/index.es.js",
- "types": "./dist/types/src/index.d.ts",
+ "types": "./dist/types/index.d.ts",
"exports": {
".": {
"import": "./dist/index.es.js",
"require": "./dist/index.cjs.js"
}
},
+ "type": "module",
"version": "0.11.4",
"scripts": {
"build": "run-s clean build:*",
@@ -21,6 +20,8 @@
"build:tsc": "tsc --emitDeclarationOnly",
"dev": "vitest",
"test": "vitest run",
+ "test:webkit": "vitest run --browser.name=webkit",
+ "test:firefox": "vitest run --browser.name=firefox",
"coverage": "vitest run --coverage",
"lint": "run-s lint:*",
"lint:types": "tsc --noEmit",
@@ -34,7 +35,7 @@
"engines": {
"node": ">=16"
},
- "packageManager": "pnpm@8.6.9",
+ "packageManager": "pnpm@8.15.4",
"prettier": {
"singleQuote": true,
"printWidth": 100
@@ -42,24 +43,15 @@
"eslintConfig": {
"root": true,
"parser": "@typescript-eslint/parser",
- "plugins": [
- "@typescript-eslint"
- ],
- "extends": [
- "eslint:recommended",
- "plugin:@typescript-eslint/recommended",
- "prettier"
- ],
+ "plugins": ["@typescript-eslint"],
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-redeclare": "off"
},
"overrides": [
{
- "files": [
- "vite.config.js",
- "vitest.config.ts"
- ],
+ "files": ["vite.config.js", "vitest.config.ts"],
"env": {
"node": true
}
diff --git a/packages/utils/test/setup-test-env.ts b/packages/utils/test/setup-test-env.ts
deleted file mode 100644
index 336b5be..0000000
--- a/packages/utils/test/setup-test-env.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { installGlobals } from '@remix-run/node';
-
-installGlobals();
-
-class PatchedFormData extends FormData {
- constructor(form?: HTMLFormElement) {
- super();
-
- if (form) {
- for (const element of form.elements) {
- if (isSelectElement(element)) {
- for (const option of element.options) {
- if (option.selected) {
- this.append(element.name, option.value);
- }
- }
- } else if (
- isInputElement(element) &&
- (element.checked || !['radio', 'checkbox'].includes(element.type)) &&
- element.name
- ) {
- this.append(element.name, element.value);
- }
- }
- }
- }
-}
-
-function isSelectElement(element: Element): element is HTMLSelectElement {
- return element.tagName == 'SELECT';
-}
-
-function isInputElement(element: Element): element is HTMLInputElement {
- return element.tagName == 'INPUT' || element.tagName == 'TEXTAREA';
-}
-
-window.FormData = PatchedFormData;
diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json
index c3c111e..dc5f0a1 100644
--- a/packages/utils/tsconfig.json
+++ b/packages/utils/tsconfig.json
@@ -15,7 +15,7 @@
"noImplicitReturns": true,
"skipLibCheck": true,
"declaration": true,
- "outDir": "./dist/types",
+ "outDir": "./dist/types"
},
- "include": ["src", "test"]
+ "include": ["src"]
}
diff --git a/packages/utils/vite.config.js b/packages/utils/vite.config.ts
similarity index 62%
rename from packages/utils/vite.config.js
rename to packages/utils/vite.config.ts
index c4353da..f42238f 100644
--- a/packages/utils/vite.config.js
+++ b/packages/utils/vite.config.ts
@@ -1,7 +1,7 @@
-const path = require('path');
-const { defineConfig } = require('vite');
+import path from 'path';
+import { defineConfig } from 'vite';
-module.exports = defineConfig({
+export default defineConfig({
build: {
lib: {
entry: path.resolve(__dirname, 'src/index.ts'),
diff --git a/packages/utils/vitest.config.ts b/packages/utils/vitest.config.ts
index f2a60e4..97694fe 100644
--- a/packages/utils/vitest.config.ts
+++ b/packages/utils/vitest.config.ts
@@ -5,7 +5,11 @@ import { defineConfig } from 'vite';
export default defineConfig({
test: {
globals: true,
- environment: 'jsdom',
- setupFiles: ['./test/setup-test-env.ts'],
+ browser: {
+ enabled: true,
+ headless: true,
+ name: 'chromium',
+ provider: 'playwright',
+ },
},
});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f3cd204..5c6cd4f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,24 +14,21 @@ importers:
'@changesets/cli':
specifier: ^2.27.1
version: 2.27.1
- '@remix-run/node':
- specifier: ^2.7.2
- version: 2.7.2(typescript@5.3.3)
'@testing-library/dom':
- specifier: ^9.3.4
- version: 9.3.4
+ specifier: ^10.0.0
+ version: 10.0.0
'@typescript-eslint/eslint-plugin':
- specifier: ^7.0.2
- version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3)
+ specifier: ^7.7.1
+ version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser':
- specifier: ^7.0.2
- version: 7.0.2(eslint@8.56.0)(typescript@5.3.3)
+ specifier: ^7.7.1
+ version: 7.7.1(eslint@8.57.0)(typescript@5.4.5)
'@vitest/browser':
- specifier: ^1.3.1
- version: 1.3.1(playwright@1.41.2)(vitest@1.3.1)(webdriverio@8.32.3)
+ specifier: ^1.5.2
+ version: 1.5.2(playwright@1.43.1)(vitest@1.5.2)
'@vitest/ui':
- specifier: ^1.3.1
- version: 1.3.1(vitest@1.3.1)
+ specifier: ^1.5.2
+ version: 1.5.2(vitest@1.5.2)
c8:
specifier: ^9.1.0
version: 9.1.0
@@ -39,66 +36,85 @@ importers:
specifier: ^5.1.0
version: 5.1.0
eslint:
- specifier: ^8.56.0
- version: 8.56.0
+ specifier: ^8.50.0
+ version: 8.57.0
eslint-config-prettier:
- specifier: ^9.1.0
- version: 9.1.0(eslint@8.56.0)
- jsdom:
- specifier: ^24.0.0
- version: 24.0.0
+ specifier: ^8.0
+ version: 8.10.0(eslint@8.57.0)
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
playwright:
- specifier: ^1.41.2
- version: 1.41.2
+ specifier: ^1.43.1
+ version: 1.43.1
prettier:
specifier: ^3.2.5
version: 3.2.5
- react:
- specifier: ^18.2.0
- version: 18.2.0
- react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
rollup:
- specifier: ^4.12.0
- version: 4.12.0
+ specifier: ^4.16.4
+ version: 4.16.4
turbo:
- specifier: ^1.12.4
- version: 1.12.4
+ specifier: ^1.13.2
+ version: 1.13.2
typescript:
- specifier: ^5.3.3
- version: 5.3.3
+ specifier: ^5.4.5
+ version: 5.4.5
vite:
- specifier: ^5.1.4
- version: 5.1.4
+ specifier: ^5.2.10
+ version: 5.2.10
vitest:
- specifier: ^1.3.1
- version: 1.3.1(@vitest/browser@1.3.1)(@vitest/ui@1.3.1)(jsdom@24.0.0)
- webdriverio:
- specifier: ^8.32.3
- version: 8.32.3(typescript@5.3.3)
+ specifier: ^1.5.2
+ version: 1.5.2(@vitest/browser@1.5.2)(@vitest/ui@1.5.2)
packages/actions:
dependencies:
+ '@coldwired/react':
+ specifier: '*'
+ version: link:../react
'@coldwired/utils':
specifier: ^0.11.1
version: link:../utils
morphdom:
specifier: ^2.7.2
version: 2.7.2
+ devDependencies:
+ '@types/react':
+ specifier: ^18.2.45
+ version: 18.2.79
+ '@types/react-dom':
+ specifier: ^18.2.18
+ version: 18.2.25
+ react:
+ specifier: ^18.0.0
+ version: 18.2.0
+ react-dom:
+ specifier: ^18.0.0
+ version: 18.2.0(react@18.2.0)
tiny-invariant:
specifier: ^1.3.2
version: 1.3.2
+
+ packages/react:
+ dependencies:
+ '@coldwired/utils':
+ specifier: ^0.11.4
+ version: link:../utils
+ react:
+ specifier: ^18.0.0
+ version: 18.2.0
+ react-dom:
+ specifier: ^18.0.0
+ version: 18.2.0(react@18.2.0)
devDependencies:
- '@hotwired/turbo':
- specifier: ^7.3.0
- version: 7.3.0
- intersection-observer:
- specifier: ^0.12.2
- version: 0.12.2
+ '@types/react':
+ specifier: ^18.2.45
+ version: 18.2.79
+ '@types/react-dom':
+ specifier: ^18.2.18
+ version: 18.2.25
+ html-entities:
+ specifier: ^2.4.0
+ version: 2.5.2
packages/turbo-stream:
dependencies:
@@ -149,12 +165,12 @@ packages:
'@babel/highlight': 7.18.6
dev: true
- /@babel/code-frame@7.23.5:
- resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
+ /@babel/code-frame@7.24.2:
+ resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.23.4
- chalk: 2.4.2
+ '@babel/highlight': 7.24.2
+ picocolors: 1.0.0
dev: true
/@babel/helper-validator-identifier@7.19.1:
@@ -176,13 +192,14 @@ packages:
js-tokens: 4.0.0
dev: true
- /@babel/highlight@7.23.4:
- resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
+ /@babel/highlight@7.24.2:
+ resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-validator-identifier': 7.22.20
chalk: 2.4.2
js-tokens: 4.0.0
+ picocolors: 1.0.0
dev: true
/@babel/runtime@7.23.9:
@@ -192,6 +209,13 @@ packages:
regenerator-runtime: 0.14.1
dev: true
+ /@babel/runtime@7.24.4:
+ resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.1
+ dev: true
+
/@bcoe/v8-coverage@0.2.3:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
@@ -379,8 +403,8 @@ packages:
prettier: 2.8.8
dev: true
- /@esbuild/aix-ppc64@0.19.12:
- resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
+ /@esbuild/aix-ppc64@0.20.2:
+ resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
@@ -388,8 +412,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm64@0.19.12:
- resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ /@esbuild/android-arm64@0.20.2:
+ resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
@@ -397,8 +421,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.19.12:
- resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ /@esbuild/android-arm@0.20.2:
+ resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@@ -406,8 +430,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64@0.19.12:
- resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ /@esbuild/android-x64@0.20.2:
+ resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
@@ -415,8 +439,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64@0.19.12:
- resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ /@esbuild/darwin-arm64@0.20.2:
+ resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
@@ -424,8 +448,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64@0.19.12:
- resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ /@esbuild/darwin-x64@0.20.2:
+ resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
@@ -433,8 +457,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64@0.19.12:
- resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ /@esbuild/freebsd-arm64@0.20.2:
+ resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
@@ -442,8 +466,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64@0.19.12:
- resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ /@esbuild/freebsd-x64@0.20.2:
+ resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
@@ -451,8 +475,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64@0.19.12:
- resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ /@esbuild/linux-arm64@0.20.2:
+ resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
@@ -460,8 +484,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm@0.19.12:
- resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ /@esbuild/linux-arm@0.20.2:
+ resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
@@ -469,8 +493,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32@0.19.12:
- resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ /@esbuild/linux-ia32@0.20.2:
+ resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
@@ -478,8 +502,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.19.12:
- resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ /@esbuild/linux-loong64@0.20.2:
+ resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@@ -487,8 +511,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el@0.19.12:
- resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ /@esbuild/linux-mips64el@0.20.2:
+ resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
@@ -496,8 +520,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64@0.19.12:
- resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ /@esbuild/linux-ppc64@0.20.2:
+ resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
@@ -505,8 +529,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64@0.19.12:
- resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ /@esbuild/linux-riscv64@0.20.2:
+ resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
@@ -514,8 +538,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x@0.19.12:
- resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ /@esbuild/linux-s390x@0.20.2:
+ resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
@@ -523,8 +547,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64@0.19.12:
- resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ /@esbuild/linux-x64@0.20.2:
+ resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
@@ -532,8 +556,8 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.19.12:
- resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ /@esbuild/netbsd-x64@0.20.2:
+ resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
@@ -541,8 +565,8 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64@0.19.12:
- resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ /@esbuild/openbsd-x64@0.20.2:
+ resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
@@ -550,8 +574,8 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64@0.19.12:
- resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ /@esbuild/sunos-x64@0.20.2:
+ resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
@@ -559,8 +583,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64@0.19.12:
- resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ /@esbuild/win32-arm64@0.20.2:
+ resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
@@ -568,8 +592,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32@0.19.12:
- resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ /@esbuild/win32-ia32@0.20.2:
+ resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
@@ -577,8 +601,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64@0.19.12:
- resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ /@esbuild/win32-x64@0.20.2:
+ resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -586,13 +610,13 @@ packages:
dev: true
optional: true
- /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.57.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:
- eslint: 8.56.0
+ eslint: 8.57.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -618,21 +642,16 @@ packages:
- supports-color
dev: true
- /@eslint/js@8.56.0:
- resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
+ /@eslint/js@8.57.0:
+ resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@hotwired/turbo@7.3.0:
- resolution: {integrity: sha512-Dcu+NaSvHLT7EjrDrkEmH4qET2ZJZ5IcCWmNXxNQTBwlnE5tBZfN6WxZ842n5cHV52DH/AKNirbPBtcEXDLW4g==}
- engines: {node: '>= 14'}
- dev: true
-
/@humanwhocodes/config-array@0.11.14:
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
dependencies:
- '@humanwhocodes/object-schema': 2.0.2
+ '@humanwhocodes/object-schema': 2.0.3
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
@@ -644,20 +663,8 @@ packages:
engines: {node: '>=12.22'}
dev: true
- /@humanwhocodes/object-schema@2.0.2:
- resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
- dev: true
-
- /@isaacs/cliui@8.0.2:
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
- dependencies:
- string-width: 5.1.2
- string-width-cjs: /string-width@4.2.3
- strip-ansi: 7.1.0
- strip-ansi-cjs: /strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: /wrap-ansi@7.0.0
+ /@humanwhocodes/object-schema@2.0.3:
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
dev: true
/@istanbuljs/schema@0.1.3:
@@ -729,235 +736,132 @@ packages:
fastq: 1.15.0
dev: true
- /@pkgjs/parseargs@0.11.0:
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
- requiresBuild: true
- dev: true
- optional: true
-
- /@polka/url@1.0.0-next.24:
- resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
- dev: true
-
- /@puppeteer/browsers@1.4.6(typescript@5.3.3):
- resolution: {integrity: sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==}
- engines: {node: '>=16.3.0'}
- hasBin: true
- peerDependencies:
- typescript: '>= 4.7.4'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- debug: 4.3.4
- extract-zip: 2.0.1
- progress: 2.0.3
- proxy-agent: 6.3.0
- tar-fs: 3.0.4
- typescript: 5.3.3
- unbzip2-stream: 1.4.3
- yargs: 17.7.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@puppeteer/browsers@1.9.1:
- resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==}
- engines: {node: '>=16.3.0'}
- hasBin: true
- dependencies:
- debug: 4.3.4
- extract-zip: 2.0.1
- progress: 2.0.3
- proxy-agent: 6.3.1
- tar-fs: 3.0.4
- unbzip2-stream: 1.4.3
- yargs: 17.7.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@remix-run/node@2.7.2(typescript@5.3.3):
- resolution: {integrity: sha512-smIWI9kNGDnY361WlDOTwxPfUw/KHcS7PCLjHlM/omx3ETD1Y2dc4Rt82LSJt0qsPSPA72ZOww08NoX+YGBvyQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- typescript: ^5.1.0
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@remix-run/server-runtime': 2.7.2(typescript@5.3.3)
- '@remix-run/web-fetch': 4.4.2
- '@remix-run/web-file': 3.1.0
- '@remix-run/web-stream': 1.1.0
- '@web3-storage/multipart-parser': 1.0.0
- cookie-signature: 1.2.1
- source-map-support: 0.5.21
- stream-slice: 0.1.2
- typescript: 5.3.3
- dev: true
-
- /@remix-run/router@1.15.1:
- resolution: {integrity: sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==}
- engines: {node: '>=14.0.0'}
- dev: true
-
- /@remix-run/server-runtime@2.7.2(typescript@5.3.3):
- resolution: {integrity: sha512-PGD1SPJttlYI3Nwe8ABk53gHCueWfZ2NOsKx7utD/lKRPFW2BqADpokzQXSzy4WTpk4drAmlagobGVIVH66Tmg==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- typescript: ^5.1.0
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@remix-run/router': 1.15.1
- '@types/cookie': 0.6.0
- '@web3-storage/multipart-parser': 1.0.0
- cookie: 0.6.0
- set-cookie-parser: 2.6.0
- source-map: 0.7.4
- typescript: 5.3.3
- dev: true
-
- /@remix-run/web-blob@3.1.0:
- resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==}
- dependencies:
- '@remix-run/web-stream': 1.1.0
- web-encoding: 1.1.5
- dev: true
-
- /@remix-run/web-fetch@4.4.2:
- resolution: {integrity: sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==}
- engines: {node: ^10.17 || >=12.3}
- dependencies:
- '@remix-run/web-blob': 3.1.0
- '@remix-run/web-file': 3.1.0
- '@remix-run/web-form-data': 3.1.0
- '@remix-run/web-stream': 1.1.0
- '@web3-storage/multipart-parser': 1.0.0
- abort-controller: 3.0.0
- data-uri-to-buffer: 3.0.1
- mrmime: 1.0.1
- dev: true
-
- /@remix-run/web-file@3.1.0:
- resolution: {integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==}
- dependencies:
- '@remix-run/web-blob': 3.1.0
- dev: true
-
- /@remix-run/web-form-data@3.1.0:
- resolution: {integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==}
- dependencies:
- web-encoding: 1.1.5
- dev: true
-
- /@remix-run/web-stream@1.1.0:
- resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==}
- dependencies:
- web-streams-polyfill: 3.3.3
+ /@polka/url@1.0.0-next.25:
+ resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
dev: true
- /@rollup/rollup-android-arm-eabi@4.12.0:
- resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==}
+ /@rollup/rollup-android-arm-eabi@4.16.4:
+ resolution: {integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-android-arm64@4.12.0:
- resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==}
+ /@rollup/rollup-android-arm64@4.16.4:
+ resolution: {integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-arm64@4.12.0:
- resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==}
+ /@rollup/rollup-darwin-arm64@4.16.4:
+ resolution: {integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-x64@4.12.0:
- resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==}
+ /@rollup/rollup-darwin-x64@4.16.4:
+ resolution: {integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.12.0:
- resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.16.4:
+ resolution: {integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm-musleabihf@4.16.4:
+ resolution: {integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.12.0:
- resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==}
+ /@rollup/rollup-linux-arm64-gnu@4.16.4:
+ resolution: {integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.12.0:
- resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==}
+ /@rollup/rollup-linux-arm64-musl@4.16.4:
+ resolution: {integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.12.0:
- resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==}
+ /@rollup/rollup-linux-powerpc64le-gnu@4.16.4:
+ resolution: {integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-riscv64-gnu@4.16.4:
+ resolution: {integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.12.0:
- resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==}
+ /@rollup/rollup-linux-s390x-gnu@4.16.4:
+ resolution: {integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-gnu@4.16.4:
+ resolution: {integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.12.0:
- resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==}
+ /@rollup/rollup-linux-x64-musl@4.16.4:
+ resolution: {integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.12.0:
- resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==}
+ /@rollup/rollup-win32-arm64-msvc@4.16.4:
+ resolution: {integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.12.0:
- resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==}
+ /@rollup/rollup-win32-ia32-msvc@4.16.4:
+ resolution: {integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-x64-msvc@4.12.0:
- resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==}
+ /@rollup/rollup-win32-x64-msvc@4.16.4:
+ resolution: {integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==}
cpu: [x64]
os: [win32]
requiresBuild: true
@@ -968,52 +872,28 @@ packages:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
- /@sindresorhus/is@5.6.0:
- resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
- engines: {node: '>=14.16'}
- dev: true
-
- /@szmarczak/http-timer@5.0.1:
- resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
- engines: {node: '>=14.16'}
- dependencies:
- defer-to-connect: 2.0.1
- dev: true
-
- /@testing-library/dom@9.3.4:
- resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
- engines: {node: '>=14'}
+ /@testing-library/dom@10.0.0:
+ resolution: {integrity: sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==}
+ engines: {node: '>=18'}
dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/runtime': 7.23.9
+ '@babel/code-frame': 7.24.2
+ '@babel/runtime': 7.24.4
'@types/aria-query': 5.0.4
- aria-query: 5.1.3
+ aria-query: 5.3.0
chalk: 4.1.2
dom-accessibility-api: 0.5.16
lz-string: 1.5.0
pretty-format: 27.5.1
dev: true
- /@tootallnate/quickjs-emscripten@0.23.0:
- resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
- dev: true
-
/@types/aria-query@5.0.4:
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
dev: true
- /@types/cookie@0.6.0:
- resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
- dev: true
-
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
- /@types/http-cache-semantics@4.0.4:
- resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
- dev: true
-
/@types/istanbul-lib-coverage@2.0.6:
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
dev: true
@@ -1034,12 +914,6 @@ packages:
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
dev: true
- /@types/node@20.11.20:
- resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==}
- dependencies:
- undici-types: 5.26.5
- dev: true
-
/@types/normalize-package-data@2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
dev: true
@@ -1048,31 +922,34 @@ packages:
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
dev: true
- /@types/semver@7.5.7:
- resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==}
+ /@types/prop-types@15.7.12:
+ resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
dev: true
- /@types/which@2.0.2:
- resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==}
+ /@types/react-dom@18.2.25:
+ resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==}
+ dependencies:
+ '@types/react': 18.2.79
dev: true
- /@types/ws@8.5.10:
- resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
+ /@types/react@18.2.79:
+ resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==}
dependencies:
- '@types/node': 20.11.20
+ '@types/prop-types': 15.7.12
+ csstype: 3.1.3
dev: true
- /@types/yauzl@2.10.3:
- resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- requiresBuild: true
- dependencies:
- '@types/node': 20.11.20
+ /@types/semver@7.5.7:
+ resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==}
+ dev: true
+
+ /@types/semver@7.5.8:
+ resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
dev: true
- optional: true
- /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==}
+ engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
eslint: ^8.56.0
@@ -1082,26 +959,26 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
- '@typescript-eslint/scope-manager': 7.0.2
- '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
- '@typescript-eslint/visitor-keys': 7.0.2
+ '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/scope-manager': 7.7.1
+ '@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.7.1
debug: 4.3.4
- eslint: 8.56.0
+ eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
semver: 7.6.0
- ts-api-utils: 1.2.1(typescript@5.3.3)
- typescript: 5.3.3
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
typescript: '*'
@@ -1109,28 +986,28 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 7.0.2
- '@typescript-eslint/types': 7.0.2
- '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
- '@typescript-eslint/visitor-keys': 7.0.2
+ '@typescript-eslint/scope-manager': 7.7.1
+ '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.7.1
debug: 4.3.4
- eslint: 8.56.0
- typescript: 5.3.3
+ eslint: 8.57.0
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager@7.0.2:
- resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/scope-manager@7.7.1:
+ resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==}
+ engines: {node: ^18.18.0 || >=20.0.0}
dependencies:
- '@typescript-eslint/types': 7.0.2
- '@typescript-eslint/visitor-keys': 7.0.2
+ '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/visitor-keys': 7.7.1
dev: true
- /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==}
+ engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
typescript: '*'
@@ -1138,67 +1015,67 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
- '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
+ '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5)
debug: 4.3.4
- eslint: 8.56.0
- ts-api-utils: 1.2.1(typescript@5.3.3)
- typescript: 5.3.3
+ eslint: 8.57.0
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types@7.0.2:
- resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/types@7.7.1:
+ resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==}
+ engines: {node: ^18.18.0 || >=20.0.0}
dev: true
- /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3):
- resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5):
+ resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 7.0.2
- '@typescript-eslint/visitor-keys': 7.0.2
+ '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/visitor-keys': 7.7.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- minimatch: 9.0.3
+ minimatch: 9.0.4
semver: 7.6.0
- ts-api-utils: 1.2.1(typescript@5.3.3)
- typescript: 5.3.3
+ ts-api-utils: 1.3.0(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==}
+ engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@types/json-schema': 7.0.15
- '@types/semver': 7.5.7
- '@typescript-eslint/scope-manager': 7.0.2
- '@typescript-eslint/types': 7.0.2
- '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
- eslint: 8.56.0
+ '@types/semver': 7.5.8
+ '@typescript-eslint/scope-manager': 7.7.1
+ '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5)
+ eslint: 8.57.0
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/visitor-keys@7.0.2:
- resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ /@typescript-eslint/visitor-keys@7.7.1:
+ resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==}
+ engines: {node: ^18.18.0 || >=20.0.0}
dependencies:
- '@typescript-eslint/types': 7.0.2
+ '@typescript-eslint/types': 7.7.1
eslint-visitor-keys: 3.4.3
dev: true
@@ -1206,12 +1083,12 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@vitest/browser@1.3.1(playwright@1.41.2)(vitest@1.3.1)(webdriverio@8.32.3):
- resolution: {integrity: sha512-pRof8G8nqRWwg3ouyIctyhfIVk5jXgF056uF//sqdi37+pVtDz9kBI/RMu0xlc8tgCyJ2aEMfbgJZPUydlEVaQ==}
+ /@vitest/browser@1.5.2(playwright@1.43.1)(vitest@1.5.2):
+ resolution: {integrity: sha512-9XuSvOQBvupBOCtMHtWULGlIw53Lusbnr/Owil7yIJ8bID+xo/xz0KLaVGnKCJVhPrv3CtacrmC0on8erXoZ3g==}
peerDependencies:
playwright: '*'
safaridriver: '*'
- vitest: 1.3.1
+ vitest: 1.5.2
webdriverio: '*'
peerDependenciesMeta:
playwright:
@@ -1221,61 +1098,60 @@ packages:
webdriverio:
optional: true
dependencies:
- '@vitest/utils': 1.3.1
- magic-string: 0.30.7
- playwright: 1.41.2
+ '@vitest/utils': 1.5.2
+ magic-string: 0.30.10
+ playwright: 1.43.1
sirv: 2.0.4
- vitest: 1.3.1(@vitest/browser@1.3.1)(@vitest/ui@1.3.1)(jsdom@24.0.0)
- webdriverio: 8.32.3(typescript@5.3.3)
+ vitest: 1.5.2(@vitest/browser@1.5.2)(@vitest/ui@1.5.2)
dev: true
- /@vitest/expect@1.3.1:
- resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==}
+ /@vitest/expect@1.5.2:
+ resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==}
dependencies:
- '@vitest/spy': 1.3.1
- '@vitest/utils': 1.3.1
+ '@vitest/spy': 1.5.2
+ '@vitest/utils': 1.5.2
chai: 4.4.1
dev: true
- /@vitest/runner@1.3.1:
- resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==}
+ /@vitest/runner@1.5.2:
+ resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==}
dependencies:
- '@vitest/utils': 1.3.1
+ '@vitest/utils': 1.5.2
p-limit: 5.0.0
pathe: 1.1.2
dev: true
- /@vitest/snapshot@1.3.1:
- resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==}
+ /@vitest/snapshot@1.5.2:
+ resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==}
dependencies:
- magic-string: 0.30.7
+ magic-string: 0.30.10
pathe: 1.1.2
pretty-format: 29.7.0
dev: true
- /@vitest/spy@1.3.1:
- resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==}
+ /@vitest/spy@1.5.2:
+ resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==}
dependencies:
tinyspy: 2.2.1
dev: true
- /@vitest/ui@1.3.1(vitest@1.3.1):
- resolution: {integrity: sha512-2UrFLJ62c/eJGPHcclstMKlAR7E1WB1ITe1isuowEPJJHi3HfqofvsUqQ1cGrEF7kitG1DJuwURUA3HLDtQkXA==}
+ /@vitest/ui@1.5.2(vitest@1.5.2):
+ resolution: {integrity: sha512-pYDitwgCOn7i3FH7Ka94G70dmj85xpBA42BaWCx82blPehyVO8FU6OLHNP9iAKJIHaIOXwZ+bgOXYSj3wZCxFA==}
peerDependencies:
- vitest: 1.3.1
+ vitest: 1.5.2
dependencies:
- '@vitest/utils': 1.3.1
+ '@vitest/utils': 1.5.2
fast-glob: 3.3.2
fflate: 0.8.2
flatted: 3.3.1
pathe: 1.1.2
picocolors: 1.0.0
sirv: 2.0.4
- vitest: 1.3.1(@vitest/browser@1.3.1)(@vitest/ui@1.3.1)(jsdom@24.0.0)
+ vitest: 1.5.2(@vitest/browser@1.5.2)(@vitest/ui@1.5.2)
dev: true
- /@vitest/utils@1.3.1:
- resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==}
+ /@vitest/utils@1.5.2:
+ resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==}
dependencies:
diff-sequences: 29.6.3
estree-walker: 3.0.3
@@ -1283,87 +1159,6 @@ packages:
pretty-format: 29.7.0
dev: true
- /@wdio/config@8.32.3:
- resolution: {integrity: sha512-hZkaz5Fd8830uniQvRgPus8yp9rp50MAsHa5kZ2Jt8y++Rp330FyJpQZE5oPjTATuz35G5Anprk2Q3fmFd0Ifw==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- '@wdio/logger': 8.28.0
- '@wdio/types': 8.32.2
- '@wdio/utils': 8.32.3
- decamelize: 6.0.0
- deepmerge-ts: 5.1.0
- glob: 10.3.10
- import-meta-resolve: 4.0.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@wdio/logger@8.28.0:
- resolution: {integrity: sha512-/s6zNCqwy1hoc+K4SJypis0Ud0dlJ+urOelJFO1x0G0rwDRWyFiUP6ijTaCcFxAm29jYEcEPWijl2xkVIHwOyA==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- chalk: 5.3.0
- loglevel: 1.9.1
- loglevel-plugin-prefix: 0.8.4
- strip-ansi: 7.1.0
- dev: true
-
- /@wdio/protocols@8.32.0:
- resolution: {integrity: sha512-inLJRrtIGdTz/YPbcsvpSvPlYQFTVtF3OYBwAXhG2FiP1ZwE1CQNLP/xgRGye1ymdGCypGkexRqIx3KBGm801Q==}
- dev: true
-
- /@wdio/repl@8.24.12:
- resolution: {integrity: sha512-321F3sWafnlw93uRTSjEBVuvWCxTkWNDs7ektQS15drrroL3TMeFOynu4rDrIz0jXD9Vas0HCD2Tq/P0uxFLdw==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- '@types/node': 20.11.20
- dev: true
-
- /@wdio/types@8.32.2:
- resolution: {integrity: sha512-jq8LcBBQpBP9ZF5kECKEpXv8hN7irCGCjLFAN0Bd5ScRR6qu6MGWvwkDkau2sFPr0b++sKDCEaMzQlwrGFjZXg==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- '@types/node': 20.11.20
- dev: true
-
- /@wdio/utils@8.32.3:
- resolution: {integrity: sha512-UnR9rPpR1W9U5wz2TU+6BQ2rlxtuK/e3fvdaiWIMZKleB/OCcEQFGiGPAGGVi4ShfaTPwz6hK1cTTgj1OtMXkg==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- '@puppeteer/browsers': 1.9.1
- '@wdio/logger': 8.28.0
- '@wdio/types': 8.32.2
- decamelize: 6.0.0
- deepmerge-ts: 5.1.0
- edgedriver: 5.3.10
- geckodriver: 4.3.3
- get-port: 7.0.0
- import-meta-resolve: 4.0.0
- locate-app: 2.2.20
- safaridriver: 0.1.2
- split2: 4.2.0
- wait-port: 1.1.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@web3-storage/multipart-parser@1.0.0:
- resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==}
- dev: true
-
- /@zxing/text-encoding@0.9.0:
- resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
- requiresBuild: true
- dev: true
- optional: true
-
- /abort-controller@3.0.0:
- resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
- engines: {node: '>=6.5'}
- dependencies:
- event-target-shim: 5.0.1
- dev: true
-
/acorn-jsx@5.3.2(acorn@8.11.3):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -1383,15 +1178,6 @@ packages:
hasBin: true
dev: true
- /agent-base@7.1.0:
- resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
- engines: {node: '>= 14'}
- dependencies:
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/aggregate-error@4.0.1:
resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
engines: {node: '>=12'}
@@ -1419,11 +1205,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /ansi-regex@6.0.1:
- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
- engines: {node: '>=12'}
- dev: true
-
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -1443,36 +1224,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
- dev: true
-
- /archiver-utils@4.0.1:
- resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==}
- engines: {node: '>= 12.0.0'}
- dependencies:
- glob: 8.1.0
- graceful-fs: 4.2.11
- lazystream: 1.0.1
- lodash: 4.17.21
- normalize-path: 3.0.0
- readable-stream: 3.6.2
- dev: true
-
- /archiver@6.0.1:
- resolution: {integrity: sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==}
- engines: {node: '>= 12.0.0'}
- dependencies:
- archiver-utils: 4.0.1
- async: 3.2.5
- buffer-crc32: 0.2.13
- readable-stream: 3.6.2
- readdir-glob: 1.1.3
- tar-stream: 3.1.7
- zip-stream: 5.0.1
- dev: true
-
/argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
dependencies:
@@ -1483,12 +1234,6 @@ packages:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
- /aria-query@5.1.3:
- resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
- dependencies:
- deep-equal: 2.2.3
- dev: true
-
/aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
dependencies:
@@ -1541,21 +1286,6 @@ packages:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
- /ast-types@0.13.4:
- resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
- engines: {node: '>=4'}
- dependencies:
- tslib: 2.6.2
- dev: true
-
- /async@3.2.5:
- resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
- dev: true
-
- /asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- dev: true
-
/available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -1577,51 +1307,10 @@ packages:
- debug
dev: true
- /b4a@1.6.6:
- resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
- dev: true
-
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
- /bare-events@2.2.0:
- resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==}
- dev: true
- optional: true
-
- /bare-fs@2.2.0:
- resolution: {integrity: sha512-+VhW202E9eTVGkX7p+TNXtZC4RTzj9JfJW7PtfIbZ7mIQ/QT9uOafQTx7lx2n9ERmWsXvLHF4hStAFn4gl2mQw==}
- requiresBuild: true
- dependencies:
- bare-events: 2.2.0
- bare-os: 2.2.0
- bare-path: 2.1.0
- streamx: 2.16.1
- dev: true
- optional: true
-
- /bare-os@2.2.0:
- resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==}
- dev: true
- optional: true
-
- /bare-path@2.1.0:
- resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==}
- dependencies:
- bare-os: 2.2.0
- dev: true
- optional: true
-
- /base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- dev: true
-
- /basic-ftp@5.0.4:
- resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==}
- engines: {node: '>=10.0.0'}
- dev: true
-
/better-path-resolve@1.0.0:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
@@ -1629,11 +1318,6 @@ packages:
is-windows: 1.0.2
dev: true
- /big-integer@1.6.52:
- resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
- engines: {node: '>=0.6'}
- dev: true
-
/binary-install@1.1.0:
resolution: {integrity: sha512-rkwNGW+3aQVSZoD0/o3mfPN6Yxh3Id0R/xzTVBVVpGNlVz8EGwusksxRlbk/A5iKTZt9zkMn3qIqmAt3vpfbzg==}
engines: {node: '>=10'}
@@ -1645,17 +1329,6 @@ packages:
- debug
dev: true
- /binary@0.3.0:
- resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==}
- dependencies:
- buffers: 0.1.1
- chainsaw: 0.1.0
- dev: true
-
- /bluebird@3.4.7:
- resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==}
- dev: true
-
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
@@ -1682,31 +1355,6 @@ packages:
wcwidth: 1.0.1
dev: true
- /buffer-crc32@0.2.13:
- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
- dev: true
-
- /buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- dev: true
-
- /buffer-indexof-polyfill@1.0.2:
- resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==}
- engines: {node: '>=0.10'}
- dev: true
-
- /buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- dev: true
-
- /buffers@0.1.1:
- resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==}
- engines: {node: '>=0.2.0'}
- dev: true
-
/c8@9.1.0:
resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==}
engines: {node: '>=14.14.0'}
@@ -1730,24 +1378,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /cacheable-lookup@7.0.0:
- resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
- engines: {node: '>=14.16'}
- dev: true
-
- /cacheable-request@10.2.14:
- resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
- engines: {node: '>=14.16'}
- dependencies:
- '@types/http-cache-semantics': 4.0.4
- get-stream: 6.0.1
- http-cache-semantics: 4.1.1
- keyv: 4.5.4
- mimic-response: 4.0.0
- normalize-url: 8.0.0
- responselike: 3.0.0
- dev: true
-
/call-bind@1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
@@ -1813,12 +1443,6 @@ packages:
type-detect: 4.0.8
dev: true
- /chainsaw@0.1.0:
- resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==}
- dependencies:
- traverse: 0.3.9
- dev: true
-
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
@@ -1836,11 +1460,6 @@ 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
-
/chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
@@ -1856,15 +1475,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /chromium-bidi@0.4.16(devtools-protocol@0.0.1147663):
- resolution: {integrity: sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==}
- peerDependencies:
- devtools-protocol: '*'
- dependencies:
- devtools-protocol: 0.0.1147663
- mitt: 3.0.0
- dev: true
-
/ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
@@ -1920,32 +1530,14 @@ packages:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
- /combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
- dependencies:
- delayed-stream: 1.0.0
- dev: true
-
- /commander@9.5.0:
- resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
- engines: {node: ^12.20.0 || >=14}
- dev: true
-
- /compress-commons@5.0.1:
- resolution: {integrity: sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==}
- engines: {node: '>= 12.0.0'}
- dependencies:
- crc-32: 1.2.2
- crc32-stream: 5.0.0
- normalize-path: 3.0.0
- readable-stream: 3.6.2
- dev: true
-
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
+ /confbox@0.1.7:
+ resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
+ dev: true
+
/console.table@0.10.0:
resolution: {integrity: sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==}
engines: {node: '> 0.10'}
@@ -1957,42 +1549,6 @@ packages:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
- /cookie-signature@1.2.1:
- resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==}
- engines: {node: '>=6.6.0'}
- dev: true
-
- /cookie@0.6.0:
- resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /core-util-is@1.0.3:
- resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
- dev: true
-
- /crc-32@1.2.2:
- resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
- engines: {node: '>=0.8'}
- hasBin: true
- dev: true
-
- /crc32-stream@5.0.0:
- resolution: {integrity: sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==}
- engines: {node: '>= 12.0.0'}
- dependencies:
- crc-32: 1.2.2
- readable-stream: 3.6.2
- dev: true
-
- /cross-fetch@4.0.0:
- resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
- dependencies:
- node-fetch: 2.7.0
- transitivePeerDependencies:
- - encoding
- dev: true
-
/cross-spawn@5.1.0:
resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
dependencies:
@@ -2021,19 +1577,8 @@ packages:
which: 2.0.2
dev: true
- /css-shorthand-properties@1.1.1:
- resolution: {integrity: sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==}
- dev: true
-
- /css-value@0.0.1:
- resolution: {integrity: sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==}
- dev: true
-
- /cssstyle@4.0.1:
- resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==}
- engines: {node: '>=18'}
- dependencies:
- rrweb-cssom: 0.6.0
+ /csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
dev: true
/csv-generate@3.4.3:
@@ -2058,29 +1603,6 @@ packages:
stream-transform: 2.1.3
dev: true
- /data-uri-to-buffer@3.0.1:
- resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
- engines: {node: '>= 6'}
- dev: true
-
- /data-uri-to-buffer@4.0.1:
- resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
- engines: {node: '>= 12'}
- dev: true
-
- /data-uri-to-buffer@6.0.2:
- resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
- engines: {node: '>= 14'}
- dev: true
-
- /data-urls@5.0.0:
- resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
- engines: {node: '>=18'}
- dependencies:
- whatwg-mimetype: 4.0.0
- whatwg-url: 14.0.0
- dev: true
-
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -2111,22 +1633,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /decamelize@6.0.0:
- resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
-
- /decimal.js@10.4.3:
- resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
- dev: true
-
- /decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
- dependencies:
- mimic-response: 3.1.0
- dev: true
-
/deep-eql@4.1.3:
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
engines: {node: '>=6'}
@@ -2134,50 +1640,16 @@ packages:
type-detect: 4.0.8
dev: true
- /deep-equal@2.2.3:
- resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
- engines: {node: '>= 0.4'}
- dependencies:
- array-buffer-byte-length: 1.0.1
- call-bind: 1.0.7
- es-get-iterator: 1.1.3
- get-intrinsic: 1.2.4
- is-arguments: 1.1.1
- is-array-buffer: 3.0.4
- is-date-object: 1.0.5
- is-regex: 1.1.4
- is-shared-array-buffer: 1.0.3
- isarray: 2.0.5
- object-is: 1.1.5
- object-keys: 1.1.1
- object.assign: 4.1.5
- regexp.prototype.flags: 1.5.2
- side-channel: 1.0.5
- which-boxed-primitive: 1.0.2
- which-collection: 1.0.1
- which-typed-array: 1.1.14
- dev: true
-
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
- /deepmerge-ts@5.1.0:
- resolution: {integrity: sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==}
- engines: {node: '>=16.0.0'}
- dev: true
-
/defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
dependencies:
clone: 1.0.4
dev: true
- /defer-to-connect@2.0.1:
- resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
- engines: {node: '>=10'}
- dev: true
-
/define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -2204,15 +1676,6 @@ packages:
object-keys: 1.1.1
dev: true
- /degenerator@5.0.1:
- resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
- engines: {node: '>= 14'}
- dependencies:
- ast-types: 0.13.4
- escodegen: 2.1.0
- esprima: 4.0.1
- dev: true
-
/del-cli@5.1.0:
resolution: {integrity: sha512-xwMeh2acluWeccsfzE7VLsG3yTr7nWikbfw+xhMnpRrF15pGSkw+3/vJZWlGoE4I86UiLRNHicmKt4tkIX9Jtg==}
engines: {node: '>=14.16'}
@@ -2236,11 +1699,6 @@ packages:
slash: 4.0.0
dev: true
- /delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
- dev: true
-
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
@@ -2256,14 +1714,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /devtools-protocol@0.0.1147663:
- resolution: {integrity: sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==}
- dev: true
-
- /devtools-protocol@0.0.1262051:
- resolution: {integrity: sha512-YJe4CT5SA8on3Spa+UDtNhEqtuV6Epwz3OZ4HQVLhlRccpZ9/PAYk0/cy/oKxFKRrZPBUPyxympQci4yWNWZ9g==}
- dev: true
-
/diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2287,57 +1737,16 @@ packages:
resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
dev: true
- /duplexer2@0.1.4:
- resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
- dependencies:
- readable-stream: 2.3.8
- dev: true
-
- /eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- dev: true
-
/easy-table@1.1.0:
resolution: {integrity: sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==}
optionalDependencies:
wcwidth: 1.0.1
dev: true
- /edge-paths@3.0.5:
- resolution: {integrity: sha512-sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@types/which': 2.0.2
- which: 2.0.2
- dev: true
-
- /edgedriver@5.3.10:
- resolution: {integrity: sha512-RFSHYMNtcF1PjaGZCA2rdQQ8hSTLPZgcYgeY1V6dC+tR4NhZXwFAku+8hCbRYh7ZlwKKrTbVu9FwknjFddIuuw==}
- hasBin: true
- requiresBuild: true
- dependencies:
- '@wdio/logger': 8.28.0
- decamelize: 6.0.0
- edge-paths: 3.0.5
- node-fetch: 3.3.2
- unzipper: 0.10.14
- which: 4.0.0
- dev: true
-
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
- /emoji-regex@9.2.2:
- 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
- dev: true
-
/enquirer@2.4.1:
resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
engines: {node: '>=8.6'}
@@ -2346,11 +1755,6 @@ packages:
strip-ansi: 6.0.1
dev: true
- /entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
- dev: true
-
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
@@ -2445,20 +1849,6 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /es-get-iterator@1.1.3:
- resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
- dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
- has-symbols: 1.0.3
- is-arguments: 1.1.1
- is-map: 2.0.2
- is-set: 2.0.2
- is-string: 1.0.7
- isarray: 2.0.5
- stop-iteration-iterator: 1.0.0
- dev: true
-
/es-set-tostringtag@2.0.3:
resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
engines: {node: '>= 0.4'}
@@ -2483,35 +1873,35 @@ packages:
is-symbol: 1.0.4
dev: true
- /esbuild@0.19.12:
- resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
+ /esbuild@0.20.2:
+ resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/aix-ppc64': 0.19.12
- '@esbuild/android-arm': 0.19.12
- '@esbuild/android-arm64': 0.19.12
- '@esbuild/android-x64': 0.19.12
- '@esbuild/darwin-arm64': 0.19.12
- '@esbuild/darwin-x64': 0.19.12
- '@esbuild/freebsd-arm64': 0.19.12
- '@esbuild/freebsd-x64': 0.19.12
- '@esbuild/linux-arm': 0.19.12
- '@esbuild/linux-arm64': 0.19.12
- '@esbuild/linux-ia32': 0.19.12
- '@esbuild/linux-loong64': 0.19.12
- '@esbuild/linux-mips64el': 0.19.12
- '@esbuild/linux-ppc64': 0.19.12
- '@esbuild/linux-riscv64': 0.19.12
- '@esbuild/linux-s390x': 0.19.12
- '@esbuild/linux-x64': 0.19.12
- '@esbuild/netbsd-x64': 0.19.12
- '@esbuild/openbsd-x64': 0.19.12
- '@esbuild/sunos-x64': 0.19.12
- '@esbuild/win32-arm64': 0.19.12
- '@esbuild/win32-ia32': 0.19.12
- '@esbuild/win32-x64': 0.19.12
+ '@esbuild/aix-ppc64': 0.20.2
+ '@esbuild/android-arm': 0.20.2
+ '@esbuild/android-arm64': 0.20.2
+ '@esbuild/android-x64': 0.20.2
+ '@esbuild/darwin-arm64': 0.20.2
+ '@esbuild/darwin-x64': 0.20.2
+ '@esbuild/freebsd-arm64': 0.20.2
+ '@esbuild/freebsd-x64': 0.20.2
+ '@esbuild/linux-arm': 0.20.2
+ '@esbuild/linux-arm64': 0.20.2
+ '@esbuild/linux-ia32': 0.20.2
+ '@esbuild/linux-loong64': 0.20.2
+ '@esbuild/linux-mips64el': 0.20.2
+ '@esbuild/linux-ppc64': 0.20.2
+ '@esbuild/linux-riscv64': 0.20.2
+ '@esbuild/linux-s390x': 0.20.2
+ '@esbuild/linux-x64': 0.20.2
+ '@esbuild/netbsd-x64': 0.20.2
+ '@esbuild/openbsd-x64': 0.20.2
+ '@esbuild/sunos-x64': 0.20.2
+ '@esbuild/win32-arm64': 0.20.2
+ '@esbuild/win32-ia32': 0.20.2
+ '@esbuild/win32-x64': 0.20.2
dev: true
/escalade@3.1.2:
@@ -2534,25 +1924,13 @@ packages:
engines: {node: '>=12'}
dev: true
- /escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
- hasBin: true
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionalDependencies:
- source-map: 0.6.1
- dev: true
-
- /eslint-config-prettier@9.1.0(eslint@8.56.0):
- resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
+ /eslint-config-prettier@8.10.0(eslint@8.57.0):
+ resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- eslint: 8.56.0
+ eslint: 8.57.0
dev: true
/eslint-scope@7.2.2:
@@ -2568,15 +1946,15 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint@8.56.0:
- resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
+ /eslint@8.57.0:
+ resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.56.0
+ '@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
@@ -2660,11 +2038,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /event-target-shim@5.0.1:
- resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
- engines: {node: '>=6'}
- dev: true
-
/execa@8.0.1:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
@@ -2693,32 +2066,10 @@ packages:
tmp: 0.0.33
dev: true
- /extract-zip@2.0.1:
- resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
- engines: {node: '>= 10.17.0'}
- hasBin: true
- dependencies:
- debug: 4.3.4
- get-stream: 5.2.0
- yauzl: 2.10.0
- optionalDependencies:
- '@types/yauzl': 2.10.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /fast-deep-equal@2.0.1:
- resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
- dev: true
-
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
- /fast-fifo@1.3.2:
- resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
- dev: true
-
/fast-glob@3.3.1:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines: {node: '>=8.6.0'}
@@ -2755,20 +2106,6 @@ packages:
reusify: 1.0.4
dev: true
- /fd-slicer@1.1.0:
- resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
- dependencies:
- pend: 1.2.0
- 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.3.3
- dev: true
-
/fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
dev: true
@@ -2847,36 +2184,6 @@ packages:
signal-exit: 4.1.0
dev: true
- /form-data-encoder@2.1.4:
- resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
- engines: {node: '>= 14.17'}
- dev: true
-
- /form-data@4.0.0:
- resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
- engines: {node: '>= 6'}
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- dev: true
-
- /formdata-polyfill@4.0.10:
- resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
- engines: {node: '>=12.20.0'}
- dependencies:
- fetch-blob: 3.2.0
- dev: true
-
- /fs-extra@11.2.0:
- resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
- engines: {node: '>=14.14'}
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.1.0
- universalify: 2.0.1
- dev: true
-
/fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
engines: {node: '>=6 <7 || >=8'}
@@ -2922,16 +2229,6 @@ packages:
dev: true
optional: true
- /fstream@1.0.12:
- resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
- engines: {node: '>=0.6'}
- dependencies:
- graceful-fs: 4.2.11
- inherits: 2.0.4
- mkdirp: 0.5.6
- rimraf: 2.7.1
- dev: true
-
/function-bind@1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
@@ -2964,24 +2261,6 @@ packages:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: true
- /geckodriver@4.3.3:
- resolution: {integrity: sha512-we2c2COgxFkLVuoknJNx+ioP+7VDq0sr6SCqWHTzlA4kzIbzR0EQ1Pps34s8WrsOnQqPC8a4sZV9dRPROOrkSg==}
- engines: {node: ^16.13 || >=18 || >=20}
- hasBin: true
- requiresBuild: true
- dependencies:
- '@wdio/logger': 8.28.0
- decamelize: 6.0.0
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- node-fetch: 3.3.2
- tar-fs: 3.0.5
- unzipper: 0.10.14
- which: 4.0.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -3010,23 +2289,6 @@ packages:
hasown: 2.0.1
dev: true
- /get-port@7.0.0:
- resolution: {integrity: sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==}
- engines: {node: '>=16'}
- 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'}
@@ -3049,18 +2311,6 @@ packages:
get-intrinsic: 1.2.4
dev: true
- /get-uri@6.0.3:
- resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==}
- engines: {node: '>= 14'}
- dependencies:
- basic-ftp: 5.0.4
- data-uri-to-buffer: 6.0.2
- debug: 4.3.4
- fs-extra: 11.2.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -3075,18 +2325,6 @@ packages:
is-glob: 4.0.3
dev: true
- /glob@10.3.10:
- resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
- dependencies:
- foreground-child: 3.1.1
- jackspeak: 2.3.6
- minimatch: 9.0.3
- minipass: 7.0.4
- path-scurry: 1.10.1
- dev: true
-
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
@@ -3098,17 +2336,6 @@ packages:
path-is-absolute: 1.0.1
dev: true
- /glob@8.1.0:
- resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
- engines: {node: '>=12'}
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 5.1.6
- once: 1.4.0
- dev: true
-
/globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
@@ -3152,23 +2379,6 @@ packages:
get-intrinsic: 1.2.4
dev: true
- /got@12.6.1:
- resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
- engines: {node: '>=14.16'}
- dependencies:
- '@sindresorhus/is': 5.6.0
- '@szmarczak/http-timer': 5.0.1
- cacheable-lookup: 7.0.0
- cacheable-request: 10.2.14
- decompress-response: 6.0.0
- form-data-encoder: 2.1.4
- get-stream: 6.0.1
- http2-wrapper: 2.2.1
- lowercase-keys: 3.0.0
- p-cancelable: 3.0.0
- responselike: 3.0.0
- dev: true
-
/graceful-fs@4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
dev: true
@@ -3265,49 +2475,14 @@ packages:
lru-cache: 6.0.0
dev: true
- /html-encoding-sniffer@4.0.0:
- resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
- engines: {node: '>=18'}
- dependencies:
- whatwg-encoding: 3.1.1
+ /html-entities@2.5.2:
+ resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
dev: true
/html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: true
- /http-cache-semantics@4.1.1:
- resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
- dev: true
-
- /http-proxy-agent@7.0.2:
- resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /http2-wrapper@2.2.1:
- resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
- engines: {node: '>=10.19.0'}
- dependencies:
- quick-lru: 5.1.1
- resolve-alpn: 1.2.1
- dev: true
-
- /https-proxy-agent@7.0.4:
- resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/human-id@1.0.2:
resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
dev: true
@@ -3324,17 +2499,6 @@ packages:
safer-buffer: 2.1.2
dev: true
- /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
-
- /ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- dev: true
-
/ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
@@ -3353,10 +2517,6 @@ packages:
resolve-from: 4.0.0
dev: true
- /import-meta-resolve@4.0.0:
- resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
- dev: true
-
/imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -3401,26 +2561,6 @@ packages:
side-channel: 1.0.5
dev: true
- /intersection-observer@0.12.2:
- resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
- dev: true
-
- /ip-address@9.0.5:
- resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
- engines: {node: '>= 12'}
- dependencies:
- jsbn: 1.1.0
- sprintf-js: 1.1.3
- dev: true
-
- /is-arguments@1.1.1:
- resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.7
- has-tostringtag: 1.0.2
- dev: true
-
/is-array-buffer@3.0.4:
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
engines: {node: '>= 0.4'}
@@ -3486,13 +2626,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /is-generator-function@1.0.10:
- resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
- engines: {node: '>= 0.4'}
- dependencies:
- has-tostringtag: 1.0.2
- dev: true
-
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -3500,10 +2633,6 @@ packages:
is-extglob: 2.1.1
dev: true
- /is-map@2.0.2:
- resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
- dev: true
-
/is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
@@ -3546,15 +2675,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
- dev: true
-
- /is-potential-custom-element-name@1.0.1:
- resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
- dev: true
-
/is-regex@1.1.4:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
@@ -3563,10 +2683,6 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-set@2.0.2:
- resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
- dev: true
-
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
@@ -3613,32 +2729,17 @@ packages:
which-typed-array: 1.1.14
dev: true
- /is-weakmap@2.0.1:
- resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
- dev: true
-
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
call-bind: 1.0.2
dev: true
- /is-weakset@2.0.2:
- resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
- dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
- dev: true
-
/is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
dev: true
- /isarray@1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
- dev: true
-
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
dev: true
@@ -3647,11 +2748,6 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
- /isexe@3.1.1:
- resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
- engines: {node: '>=16'}
- dev: true
-
/istanbul-lib-coverage@3.2.2:
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
engines: {node: '>=8'}
@@ -3674,21 +2770,11 @@ packages:
istanbul-lib-report: 3.0.1
dev: true
- /jackspeak@2.3.6:
- resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
- engines: {node: '>=14'}
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
- dev: true
-
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- dev: true
- /js-tokens@8.0.3:
- resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==}
+ /js-tokens@9.0.0:
+ resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
dev: true
/js-yaml@3.14.1:
@@ -3706,46 +2792,6 @@ packages:
argparse: 2.0.1
dev: true
- /jsbn@1.1.0:
- resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
- dev: true
-
- /jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
- engines: {node: '>=18'}
- peerDependencies:
- canvas: ^2.11.2
- peerDependenciesMeta:
- canvas:
- optional: true
- dependencies:
- cssstyle: 4.0.1
- data-urls: 5.0.0
- decimal.js: 10.4.3
- form-data: 4.0.0
- html-encoding-sniffer: 4.0.0
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- is-potential-custom-element-name: 1.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.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.16.0
- xml-name-validator: 5.0.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: true
@@ -3766,24 +2812,12 @@ packages:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
- /jsonc-parser@3.2.1:
- resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
- dev: true
-
/jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies:
graceful-fs: 4.2.11
dev: true
- /jsonfile@6.1.0:
- resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
- dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
- dev: true
-
/just-debounce-it@3.2.0:
resolution: {integrity: sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==}
dev: true
@@ -3808,18 +2842,6 @@ packages:
engines: {node: '>=6'}
dev: true
- /ky@0.33.3:
- resolution: {integrity: sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==}
- engines: {node: '>=14.16'}
- dev: true
-
- /lazystream@1.0.1:
- resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
- engines: {node: '>= 0.6.3'}
- dependencies:
- readable-stream: 2.3.8
- dev: true
-
/levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -3832,10 +2854,6 @@ packages:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
dev: true
- /listenercount@1.0.1:
- resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==}
- dev: true
-
/load-json-file@4.0.0:
resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
engines: {node: '>=4'}
@@ -3861,15 +2879,7 @@ packages:
engines: {node: '>=14'}
dependencies:
mlly: 1.6.1
- pkg-types: 1.0.3
- dev: true
-
- /locate-app@2.2.20:
- resolution: {integrity: sha512-TOCp8H9l75GhNtd+BgyUnLMNzR+IpYge7cWjxELsyDlqH+MyYWxq+NfyjQ+o6oRAORzOs3IfMM6KAR6q3JNfhg==}
- dependencies:
- n12: 1.8.23
- type-fest: 2.13.0
- userhome: 1.0.0
+ pkg-types: 1.1.0
dev: true
/locate-path@5.0.0:
@@ -3886,10 +2896,6 @@ packages:
p-locate: 5.0.0
dev: true
- /lodash.clonedeep@4.5.0:
- resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
- dev: true
-
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
@@ -3898,29 +2904,11 @@ packages:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
dev: true
- /lodash.zip@4.2.0:
- resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==}
- dev: true
-
- /lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
- dev: true
-
- /loglevel-plugin-prefix@0.8.4:
- resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==}
- dev: true
-
- /loglevel@1.9.1:
- resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==}
- engines: {node: '>= 0.6.0'}
- dev: true
-
/loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
dependencies:
js-tokens: 4.0.0
- dev: true
/loupe@2.3.7:
resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
@@ -3928,16 +2916,6 @@ packages:
get-func-name: 2.0.2
dev: true
- /lowercase-keys@3.0.0:
- resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
-
- /lru-cache@10.2.0:
- resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
- engines: {node: 14 || >=16.14}
- dev: true
-
/lru-cache@4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
dependencies:
@@ -3952,19 +2930,13 @@ packages:
yallist: 4.0.0
dev: true
- /lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
- dev: true
-
/lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
dev: true
- /magic-string@0.30.7:
- resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
- engines: {node: '>=12'}
+ /magic-string@0.30.10:
+ resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
@@ -4043,33 +3015,11 @@ packages:
picomatch: 2.3.1
dev: true
- /mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
- dependencies:
- mime-db: 1.52.0
- dev: true
-
/mimic-fn@4.0.0:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
dev: true
- /mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
- dev: true
-
- /mimic-response@4.0.0:
- resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
-
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -4081,15 +3031,8 @@ packages:
brace-expansion: 1.1.11
dev: true
- /minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
- engines: {node: '>=10'}
- dependencies:
- brace-expansion: 2.0.1
- dev: true
-
- /minimatch@9.0.3:
- resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ /minimatch@9.0.4:
+ resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
@@ -4104,10 +3047,6 @@ packages:
kind-of: 6.0.3
dev: true
- /minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- dev: true
-
/minipass@3.3.6:
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
engines: {node: '>=8'}
@@ -4120,11 +3059,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /minipass@7.0.4:
- resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
- engines: {node: '>=16 || 14 >=14.17'}
- dev: true
-
/minizlib@2.1.2:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
@@ -4133,26 +3067,11 @@ packages:
yallist: 4.0.0
dev: true
- /mitt@3.0.0:
- resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
- dev: true
-
/mixme@0.5.10:
resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==}
engines: {node: '>= 8.0.0'}
dev: true
- /mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
- dev: true
-
- /mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
- dependencies:
- minimist: 1.2.8
- dev: true
-
/mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
@@ -4164,19 +3083,14 @@ packages:
dependencies:
acorn: 8.11.3
pathe: 1.1.2
- pkg-types: 1.0.3
- ufo: 1.4.0
+ pkg-types: 1.1.0
+ ufo: 1.5.3
dev: true
/morphdom@2.7.2:
resolution: {integrity: sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==}
dev: false
- /mrmime@1.0.1:
- resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
- engines: {node: '>=10'}
- dev: true
-
/mrmime@2.0.0:
resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
engines: {node: '>=10'}
@@ -4186,10 +3100,6 @@ packages:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
- /n12@1.8.23:
- resolution: {integrity: sha512-kQITb5LlO0Gk8rmbMAkfbmhs+QlXZ5SRHsx6YcG++3yc57iolbiQuo5rsfu3dkB7Qw3jKCqntsZvNNgvdfotkA==}
- dev: true
-
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -4200,41 +3110,10 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
- /netmask@2.0.2:
- resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
- engines: {node: '>= 0.4.0'}
- dev: true
-
/nice-try@1.0.5:
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
dev: true
- /node-domexception@1.0.0:
- resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
- engines: {node: '>=10.5.0'}
- dev: true
-
- /node-fetch@2.7.0:
- resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
- dependencies:
- whatwg-url: 5.0.0
- dev: true
-
- /node-fetch@3.3.2:
- resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- data-uri-to-buffer: 4.0.1
- fetch-blob: 3.2.0
- formdata-polyfill: 4.0.10
- dev: true
-
/normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
@@ -4254,16 +3133,6 @@ packages:
validate-npm-package-license: 3.0.4
dev: true
- /normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /normalize-url@8.0.0:
- resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
- engines: {node: '>=14.16'}
- dev: true
-
/npm-run-all@4.1.5:
resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==}
engines: {node: '>= 4'}
@@ -4287,10 +3156,6 @@ packages:
path-key: 4.0.0
dev: true
- /nwsapi@2.2.7:
- resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
- dev: true
-
/object-inspect@1.12.2:
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
dev: true
@@ -4299,14 +3164,6 @@ packages:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
dev: true
- /object-is@1.1.5:
- resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.7
- define-properties: 1.2.1
- dev: true
-
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
@@ -4366,11 +3223,6 @@ packages:
resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
dev: true
- /p-cancelable@3.0.0:
- resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
- engines: {node: '>=12.20'}
- dev: true
-
/p-filter@2.1.0:
resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
engines: {node: '>=8'}
@@ -4430,30 +3282,6 @@ packages:
engines: {node: '>=6'}
dev: true
- /pac-proxy-agent@7.0.1:
- resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==}
- engines: {node: '>= 14'}
- dependencies:
- '@tootallnate/quickjs-emscripten': 0.23.0
- agent-base: 7.1.0
- debug: 4.3.4
- get-uri: 6.0.3
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- pac-resolver: 7.0.1
- socks-proxy-agent: 8.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /pac-resolver@7.0.1:
- resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==}
- engines: {node: '>= 14'}
- dependencies:
- degenerator: 5.0.1
- netmask: 2.0.2
- dev: true
-
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -4479,12 +3307,6 @@ packages:
lines-and-columns: 1.2.4
dev: true
- /parse5@7.1.2:
- resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
- dependencies:
- entities: 4.5.0
- dev: true
-
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -4514,14 +3336,6 @@ packages:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
- /path-scurry@1.10.1:
- resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
- engines: {node: '>=16 || 14 >=14.17'}
- dependencies:
- lru-cache: 10.2.0
- minipass: 7.0.4
- dev: true
-
/path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
engines: {node: '>=4'}
@@ -4542,10 +3356,6 @@ packages:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
- /pend@1.2.0:
- resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
- dev: true
-
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
@@ -4578,26 +3388,26 @@ packages:
find-up: 4.1.0
dev: true
- /pkg-types@1.0.3:
- resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
+ /pkg-types@1.1.0:
+ resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==}
dependencies:
- jsonc-parser: 3.2.1
+ confbox: 0.1.7
mlly: 1.6.1
pathe: 1.1.2
dev: true
- /playwright-core@1.41.2:
- resolution: {integrity: sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==}
+ /playwright-core@1.43.1:
+ resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==}
engines: {node: '>=16'}
hasBin: true
dev: true
- /playwright@1.41.2:
- resolution: {integrity: sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==}
+ /playwright@1.43.1:
+ resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==}
engines: {node: '>=16'}
hasBin: true
dependencies:
- playwright-core: 1.41.2
+ playwright-core: 1.43.1
optionalDependencies:
fsevents: 2.3.2
dev: true
@@ -4607,13 +3417,13 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /postcss@8.4.35:
- resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
+ /postcss@8.4.38:
+ resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
picocolors: 1.0.0
- source-map-js: 1.0.2
+ source-map-js: 1.2.0
dev: true
/preferred-pm@3.1.3:
@@ -4658,113 +3468,22 @@ packages:
dependencies:
'@jest/schemas': 29.6.3
ansi-styles: 5.2.0
- react-is: 18.2.0
- dev: true
-
- /process-nextick-args@2.0.1:
- resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
- dev: true
-
- /progress@2.0.3:
- resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
- engines: {node: '>=0.4.0'}
- dev: true
-
- /proxy-agent@6.3.0:
- resolution: {integrity: sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- lru-cache: 7.18.3
- pac-proxy-agent: 7.0.1
- proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /proxy-agent@6.3.1:
- resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.4
- lru-cache: 7.18.3
- pac-proxy-agent: 7.0.1
- proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ react-is: 18.3.0
dev: true
/pseudomap@1.0.2:
resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
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==}
- dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
- dev: true
-
/punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
dev: true
- /puppeteer-core@20.9.0(typescript@5.3.3):
- resolution: {integrity: sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==}
- engines: {node: '>=16.3.0'}
- peerDependencies:
- typescript: '>= 4.7.4'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@puppeteer/browsers': 1.4.6(typescript@5.3.3)
- chromium-bidi: 0.4.16(devtools-protocol@0.0.1147663)
- cross-fetch: 4.0.0
- debug: 4.3.4
- devtools-protocol: 0.0.1147663
- typescript: 5.3.3
- ws: 8.13.0
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - supports-color
- - utf-8-validate
- dev: true
-
- /query-selector-shadow-dom@1.0.1:
- resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==}
- dev: true
-
- /querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
- dev: true
-
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
- /queue-tick@1.0.1:
- resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
- dev: true
-
/quick-lru@4.0.1:
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
engines: {node: '>=8'}
@@ -4783,14 +3502,13 @@ packages:
loose-envify: 1.4.0
react: 18.2.0
scheduler: 0.23.0
- dev: true
/react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
- /react-is@18.2.0:
- resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ /react-is@18.3.0:
+ resolution: {integrity: sha512-wRiUsea88TjKDc4FBEn+sLvIDesp6brMbGWnJGjew2waAc9evdhja/2LvePc898HJbHw0L+MTWy7NhpnELAvLQ==}
dev: true
/react@18.2.0:
@@ -4798,7 +3516,6 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
loose-envify: 1.4.0
- dev: true
/read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
@@ -4857,33 +3574,6 @@ packages:
strip-bom: 3.0.0
dev: true
- /readable-stream@2.3.8:
- resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
- dependencies:
- core-util-is: 1.0.3
- inherits: 2.0.4
- isarray: 1.0.0
- process-nextick-args: 2.0.1
- safe-buffer: 5.1.2
- string_decoder: 1.1.1
- util-deprecate: 1.0.2
- dev: true
-
- /readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- dev: true
-
- /readdir-glob@1.1.3:
- resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
- dependencies:
- minimatch: 5.1.6
- dev: true
-
/redent@3.0.0:
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
engines: {node: '>=8'}
@@ -4932,14 +3622,6 @@ packages:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
dev: true
- /requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
- dev: true
-
- /resolve-alpn@1.2.1:
- resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
- dev: true
-
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -4959,35 +3641,11 @@ packages:
supports-preserve-symlinks-flag: 1.0.0
dev: true
- /responselike@3.0.0:
- resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
- engines: {node: '>=14.16'}
- dependencies:
- lowercase-keys: 3.0.0
- dev: true
-
- /resq@1.11.0:
- resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==}
- dependencies:
- fast-deep-equal: 2.0.1
- dev: true
-
/reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
- /rgb2hex@0.2.5:
- resolution: {integrity: sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==}
- dev: true
-
- /rimraf@2.7.1:
- resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
- hasBin: true
- dependencies:
- glob: 7.2.3
- dev: true
-
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
@@ -4995,43 +3653,38 @@ packages:
glob: 7.2.3
dev: true
- /rollup@4.12.0:
- resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==}
+ /rollup@4.16.4:
+ resolution: {integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.12.0
- '@rollup/rollup-android-arm64': 4.12.0
- '@rollup/rollup-darwin-arm64': 4.12.0
- '@rollup/rollup-darwin-x64': 4.12.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.12.0
- '@rollup/rollup-linux-arm64-gnu': 4.12.0
- '@rollup/rollup-linux-arm64-musl': 4.12.0
- '@rollup/rollup-linux-riscv64-gnu': 4.12.0
- '@rollup/rollup-linux-x64-gnu': 4.12.0
- '@rollup/rollup-linux-x64-musl': 4.12.0
- '@rollup/rollup-win32-arm64-msvc': 4.12.0
- '@rollup/rollup-win32-ia32-msvc': 4.12.0
- '@rollup/rollup-win32-x64-msvc': 4.12.0
+ '@rollup/rollup-android-arm-eabi': 4.16.4
+ '@rollup/rollup-android-arm64': 4.16.4
+ '@rollup/rollup-darwin-arm64': 4.16.4
+ '@rollup/rollup-darwin-x64': 4.16.4
+ '@rollup/rollup-linux-arm-gnueabihf': 4.16.4
+ '@rollup/rollup-linux-arm-musleabihf': 4.16.4
+ '@rollup/rollup-linux-arm64-gnu': 4.16.4
+ '@rollup/rollup-linux-arm64-musl': 4.16.4
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.16.4
+ '@rollup/rollup-linux-riscv64-gnu': 4.16.4
+ '@rollup/rollup-linux-s390x-gnu': 4.16.4
+ '@rollup/rollup-linux-x64-gnu': 4.16.4
+ '@rollup/rollup-linux-x64-musl': 4.16.4
+ '@rollup/rollup-win32-arm64-msvc': 4.16.4
+ '@rollup/rollup-win32-ia32-msvc': 4.16.4
+ '@rollup/rollup-win32-x64-msvc': 4.16.4
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:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
- /safaridriver@0.1.2:
- resolution: {integrity: sha512-4R309+gWflJktzPXBQCobbWEHlzC4aK3a+Ov3tz2Ib2aBxiwd11phkdIBH1l0EO22x24CJMUQkpKFumRriCSRg==}
- dev: true
-
/safe-array-concat@1.1.0:
resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
engines: {node: '>=0.4'}
@@ -5042,14 +3695,6 @@ packages:
isarray: 2.0.5
dev: true
- /safe-buffer@5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
- dev: true
-
- /safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: true
-
/safe-regex-test@1.0.3:
resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
engines: {node: '>= 0.4'}
@@ -5063,18 +3708,10 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /saxes@6.0.0:
- resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
- engines: {node: '>=v12.22.7'}
- dependencies:
- xmlchars: 2.2.0
- dev: true
-
/scheduler@0.23.0:
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
dependencies:
loose-envify: 1.4.0
- dev: true
/semver@5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
@@ -5097,21 +3734,10 @@ packages:
lru-cache: 6.0.0
dev: true
- /serialize-error@11.0.3:
- resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==}
- engines: {node: '>=14.16'}
- dependencies:
- type-fest: 2.19.0
- dev: true
-
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: true
- /set-cookie-parser@2.6.0:
- resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
- dev: true
-
/set-function-length@1.2.1:
resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
engines: {node: '>= 0.4'}
@@ -5134,10 +3760,6 @@ packages:
has-property-descriptors: 1.0.2
dev: true
- /setimmediate@1.0.5:
- resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
- dev: true
-
/shebang-command@1.2.0:
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
engines: {node: '>=0.10.0'}
@@ -5201,7 +3823,7 @@ packages:
resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
engines: {node: '>= 10'}
dependencies:
- '@polka/url': 1.0.0-next.24
+ '@polka/url': 1.0.0-next.25
mrmime: 2.0.0
totalist: 3.0.1
dev: true
@@ -5216,11 +3838,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /smart-buffer@4.2.0:
- resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
- engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
- dev: true
-
/smartwrap@2.0.2:
resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==}
engines: {node: '>=6'}
@@ -5234,47 +3851,11 @@ packages:
yargs: 15.4.1
dev: true
- /socks-proxy-agent@8.0.2:
- resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==}
- engines: {node: '>= 14'}
- dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- socks: 2.8.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /socks@2.8.1:
- resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==}
- engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
- dependencies:
- ip-address: 9.0.5
- smart-buffer: 4.2.0
- dev: true
-
- /source-map-js@1.0.2:
- resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ /source-map-js@1.2.0:
+ resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
dev: true
- /source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
- dev: true
-
- /source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /source-map@0.7.4:
- resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
- engines: {node: '>= 8'}
- dev: true
-
/spawndamnit@2.0.0:
resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
dependencies:
@@ -5304,19 +3885,10 @@ packages:
resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}
dev: true
- /split2@4.2.0:
- resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
- engines: {node: '>= 10.x'}
- dev: true
-
/sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true
- /sprintf-js@1.1.3:
- resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
- dev: true
-
/stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
@@ -5325,32 +3897,12 @@ packages:
resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
dev: true
- /stop-iteration-iterator@1.0.0:
- resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- internal-slot: 1.0.7
- dev: true
-
- /stream-slice@0.1.2:
- resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==}
- dev: true
-
/stream-transform@2.1.3:
resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
dependencies:
mixme: 0.5.10
dev: true
- /streamx@2.16.1:
- resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
- dependencies:
- fast-fifo: 1.3.2
- queue-tick: 1.0.1
- optionalDependencies:
- bare-events: 2.2.0
- dev: true
-
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -5360,15 +3912,6 @@ packages:
strip-ansi: 6.0.1
dev: true
- /string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.0
- dev: true
-
/string.prototype.padend@3.1.3:
resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==}
engines: {node: '>= 0.4'}
@@ -5419,18 +3962,6 @@ packages:
es-abstract: 1.22.4
dev: true
- /string_decoder@1.1.1:
- resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
- dependencies:
- safe-buffer: 5.1.2
- dev: true
-
- /string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- dependencies:
- safe-buffer: 5.2.1
- dev: true
-
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -5438,13 +3969,6 @@ packages:
ansi-regex: 5.0.1
dev: true
- /strip-ansi@7.1.0:
- resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-regex: 6.0.1
- dev: true
-
/strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -5474,10 +3998,10 @@ packages:
engines: {node: '>=8'}
dev: true
- /strip-literal@2.0.0:
- resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==}
+ /strip-literal@2.1.0:
+ resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
dependencies:
- js-tokens: 8.0.3
+ js-tokens: 9.0.0
dev: true
/supports-color@5.5.0:
@@ -5499,36 +4023,6 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /symbol-tree@3.2.4:
- resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
- dev: true
-
- /tar-fs@3.0.4:
- resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
- dependencies:
- mkdirp-classic: 0.5.3
- pump: 3.0.0
- tar-stream: 3.1.7
- dev: true
-
- /tar-fs@3.0.5:
- resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==}
- dependencies:
- pump: 3.0.0
- tar-stream: 3.1.7
- optionalDependencies:
- bare-fs: 2.2.0
- bare-path: 2.1.0
- dev: true
-
- /tar-stream@3.1.7:
- resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
- dependencies:
- b4a: 1.6.6
- fast-fifo: 1.3.2
- streamx: 2.16.1
- dev: true
-
/tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
@@ -5559,20 +4053,15 @@ packages:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
-
/tiny-invariant@1.3.2:
resolution: {integrity: sha512-oLXoWt7bk7SI3REp16Hesm0kTBTErhk+FWTvuujYMlIbX42bb3yLN98T3OyzFNkZ3WAjVYDL4sWykCR6kD2mqQ==}
- dev: false
- /tinybench@2.6.0:
- resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==}
+ /tinybench@2.8.0:
+ resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==}
dev: true
- /tinypool@0.8.2:
- resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==}
+ /tinypool@0.8.4:
+ resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
engines: {node: '>=14.0.0'}
dev: true
@@ -5600,31 +4089,6 @@ packages:
engines: {node: '>=6'}
dev: true
- /tough-cookie@4.1.3:
- resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
- engines: {node: '>=6'}
- dependencies:
- psl: 1.9.0
- punycode: 2.3.1
- universalify: 0.2.0
- url-parse: 1.5.10
- dev: true
-
- /tr46@0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- dev: true
-
- /tr46@5.0.0:
- resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
- engines: {node: '>=18'}
- dependencies:
- punycode: 2.3.1
- dev: true
-
- /traverse@0.3.9:
- resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==}
- dev: true
-
/trim-newlines@3.0.1:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
@@ -5635,17 +4099,13 @@ packages:
engines: {node: '>=12'}
dev: true
- /ts-api-utils@1.2.1(typescript@5.3.3):
- resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
+ /ts-api-utils@1.3.0(typescript@5.4.5):
+ resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
engines: {node: '>=16'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
- typescript: 5.3.3
- dev: true
-
- /tslib@2.6.2:
- resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ typescript: 5.4.5
dev: true
/tty-table@4.2.3:
@@ -5667,64 +4127,64 @@ packages:
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
dev: true
- /turbo-darwin-64@1.12.4:
- resolution: {integrity: sha512-dBwFxhp9isTa9RS/fz2gDVk5wWhKQsPQMozYhjM7TT4jTrnYn0ZJMzr7V3B/M/T8QF65TbniW7w1gtgxQgX5Zg==}
+ /turbo-darwin-64@1.13.2:
+ resolution: {integrity: sha512-CCSuD8CfmtncpohCuIgq7eAzUas0IwSbHfI8/Q3vKObTdXyN8vAo01gwqXjDGpzG9bTEVedD0GmLbD23dR0MLA==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-darwin-arm64@1.12.4:
- resolution: {integrity: sha512-1Uo5iI6xsJ1j9ObsqxYRsa3W26mEbUe6fnj4rQYV6kDaqYD54oAMJ6hM53q9rB8JvFxwdrUXGp3PwTw9A0qqkA==}
+ /turbo-darwin-arm64@1.13.2:
+ resolution: {integrity: sha512-0HySm06/D2N91rJJ89FbiI/AodmY8B3WDSFTVEpu2+8spUw7hOJ8okWOT0e5iGlyayUP9gr31eOeL3VFZkpfCw==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-64@1.12.4:
- resolution: {integrity: sha512-ONg2aSqKP7LAQOg7ysmU5WpEQp4DGNxSlAiR7um+LKtbmC/UxogbR5+T+Uuq6zGuQ5kJyKjWJ4NhtvUswOqBsA==}
+ /turbo-linux-64@1.13.2:
+ resolution: {integrity: sha512-7HnibgbqZrjn4lcfIouzlPu8ZHSBtURG4c7Bedu7WJUDeZo+RE1crlrQm8wuwO54S0siYqUqo7GNHxu4IXbioQ==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-arm64@1.12.4:
- resolution: {integrity: sha512-9FPufkwdgfIKg/9jj87Cdtftw8o36y27/S2vLN7FTR2pp9c0MQiTBOLVYadUr1FlShupddmaMbTkXEhyt9SdrA==}
+ /turbo-linux-arm64@1.13.2:
+ resolution: {integrity: sha512-sUq4dbpk6SNKg/Hkwn256Vj2AEYSQdG96repio894h5/LEfauIK2QYiC/xxAeW3WBMc6BngmvNyURIg7ltrePg==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-64@1.12.4:
- resolution: {integrity: sha512-2mOtxHW5Vjh/5rDVu/aFwsMzI+chs8XcEuJHlY1sYOpEymYTz+u6AXbnzRvwZFMrLKr7J7fQOGl+v96sLKbNdA==}
+ /turbo-windows-64@1.13.2:
+ resolution: {integrity: sha512-DqzhcrciWq3dpzllJR2VVIyOhSlXYCo4mNEWl98DJ3FZ08PEzcI3ceudlH6F0t/nIcfSItK1bDP39cs7YoZHEA==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-arm64@1.12.4:
- resolution: {integrity: sha512-nOY5wae9qnxPOpT1fRuYO0ks6dTwpKMPV6++VkDkamFDLFHUDVM/9kmD2UTeh1yyrKnrZksbb9zmShhmfj1wog==}
+ /turbo-windows-arm64@1.13.2:
+ resolution: {integrity: sha512-WnPMrwfCXxK69CdDfS1/j2DlzcKxSmycgDAqV0XCYpK/812KB0KlvsVAt5PjEbZGXkY88pCJ1BLZHAjF5FcbqA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo@1.12.4:
- resolution: {integrity: sha512-yUJ7elEUSToiGwFZogXpYKJpQ0BvaMbkEuQECIWtkBLcmWzlMOt6bActsIm29oN83mRU0WbzGt4e8H1KHWedhg==}
+ /turbo@1.13.2:
+ resolution: {integrity: sha512-rX/d9f4MgRT3yK6cERPAkfavIxbpBZowDQpgvkYwGMGDQ0Nvw1nc0NVjruE76GrzXQqoxR1UpnmEP54vBARFHQ==}
hasBin: true
optionalDependencies:
- turbo-darwin-64: 1.12.4
- turbo-darwin-arm64: 1.12.4
- turbo-linux-64: 1.12.4
- turbo-linux-arm64: 1.12.4
- turbo-windows-64: 1.12.4
- turbo-windows-arm64: 1.12.4
+ turbo-darwin-64: 1.13.2
+ turbo-darwin-arm64: 1.13.2
+ turbo-linux-64: 1.13.2
+ turbo-linux-arm64: 1.13.2
+ turbo-windows-64: 1.13.2
+ turbo-windows-arm64: 1.13.2
dev: true
/type-check@0.4.0:
@@ -5764,16 +4224,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /type-fest@2.13.0:
- resolution: {integrity: sha512-lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw==}
- engines: {node: '>=12.20'}
- dev: true
-
- /type-fest@2.19.0:
- resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
- engines: {node: '>=12.20'}
- dev: true
-
/typed-array-buffer@1.0.2:
resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
engines: {node: '>= 0.4'}
@@ -5818,14 +4268,14 @@ packages:
possible-typed-array-names: 1.0.0
dev: true
- /typescript@5.3.3:
- resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
+ /typescript@5.4.5:
+ resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
- /ufo@1.4.0:
- resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==}
+ /ufo@1.5.3:
+ resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
dev: true
/unbox-primitive@1.0.2:
@@ -5837,79 +4287,17 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
- /unbzip2-stream@1.4.3:
- resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
- dependencies:
- buffer: 5.7.1
- through: 2.3.8
- dev: true
-
- /undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- dev: true
-
/universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
dev: true
- /universalify@0.2.0:
- resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
- engines: {node: '>= 4.0.0'}
- dev: true
-
- /universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
- dev: true
-
- /unzipper@0.10.14:
- resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==}
- dependencies:
- big-integer: 1.6.52
- binary: 0.3.0
- bluebird: 3.4.7
- buffer-indexof-polyfill: 1.0.2
- duplexer2: 0.1.4
- fstream: 1.0.12
- graceful-fs: 4.2.11
- listenercount: 1.0.1
- readable-stream: 2.3.8
- setimmediate: 1.0.5
- dev: true
-
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.3.1
dev: true
- /url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
- dev: true
-
- /userhome@1.0.0:
- resolution: {integrity: sha512-ayFKY3H+Pwfy4W98yPdtH1VqH4psDeyW8lYYFzfecR9d6hqLpqhecktvYR3SEEXt7vG0S1JEpciI3g94pMErig==}
- engines: {node: '>= 0.8.0'}
- dev: true
-
- /util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- dev: true
-
- /util@0.12.5:
- resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
- dependencies:
- inherits: 2.0.4
- is-arguments: 1.1.1
- is-generator-function: 1.0.10
- is-typed-array: 1.1.13
- which-typed-array: 1.1.14
- dev: true
-
/v8-to-istanbul@9.2.0:
resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
engines: {node: '>=10.12.0'}
@@ -5926,8 +4314,8 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
- /vite-node@1.3.1:
- resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
+ /vite-node@1.5.2:
+ resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
dependencies:
@@ -5935,7 +4323,7 @@ packages:
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.0
- vite: 5.1.4
+ vite: 5.2.10
transitivePeerDependencies:
- '@types/node'
- less
@@ -5947,8 +4335,8 @@ packages:
- terser
dev: true
- /vite@5.1.4:
- resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==}
+ /vite@5.2.10:
+ resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -5975,22 +4363,22 @@ packages:
terser:
optional: true
dependencies:
- esbuild: 0.19.12
- postcss: 8.4.35
- rollup: 4.12.0
+ esbuild: 0.20.2
+ postcss: 8.4.38
+ rollup: 4.16.4
optionalDependencies:
fsevents: 2.3.3
dev: true
- /vitest@1.3.1(@vitest/browser@1.3.1)(@vitest/ui@1.3.1)(jsdom@24.0.0):
- resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
+ /vitest@1.5.2(@vitest/browser@1.5.2)(@vitest/ui@1.5.2):
+ resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==}
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.3.1
- '@vitest/ui': 1.3.1
+ '@vitest/browser': 1.5.2
+ '@vitest/ui': 1.5.2
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -6007,28 +4395,27 @@ packages:
jsdom:
optional: true
dependencies:
- '@vitest/browser': 1.3.1(playwright@1.41.2)(vitest@1.3.1)(webdriverio@8.32.3)
- '@vitest/expect': 1.3.1
- '@vitest/runner': 1.3.1
- '@vitest/snapshot': 1.3.1
- '@vitest/spy': 1.3.1
- '@vitest/ui': 1.3.1(vitest@1.3.1)
- '@vitest/utils': 1.3.1
+ '@vitest/browser': 1.5.2(playwright@1.43.1)(vitest@1.5.2)
+ '@vitest/expect': 1.5.2
+ '@vitest/runner': 1.5.2
+ '@vitest/snapshot': 1.5.2
+ '@vitest/spy': 1.5.2
+ '@vitest/ui': 1.5.2(vitest@1.5.2)
+ '@vitest/utils': 1.5.2
acorn-walk: 8.3.2
chai: 4.4.1
debug: 4.3.4
execa: 8.0.1
- jsdom: 24.0.0
local-pkg: 0.5.0
- magic-string: 0.30.7
+ magic-string: 0.30.10
pathe: 1.1.2
picocolors: 1.0.0
std-env: 3.7.0
- strip-literal: 2.0.0
- tinybench: 2.6.0
- tinypool: 0.8.2
- vite: 5.1.4
- vite-node: 1.3.1
+ strip-literal: 2.1.0
+ tinybench: 2.8.0
+ tinypool: 0.8.4
+ vite: 5.2.10
+ vite-node: 1.5.2
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@@ -6040,142 +4427,12 @@ packages:
- terser
dev: true
- /w3c-xmlserializer@5.0.0:
- resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
- engines: {node: '>=18'}
- dependencies:
- xml-name-validator: 5.0.0
- dev: true
-
- /wait-port@1.1.0:
- resolution: {integrity: sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- chalk: 4.1.2
- commander: 9.5.0
- debug: 4.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
dependencies:
defaults: 1.0.4
dev: true
- /web-encoding@1.1.5:
- resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
- dependencies:
- util: 0.12.5
- optionalDependencies:
- '@zxing/text-encoding': 0.9.0
- dev: true
-
- /web-streams-polyfill@3.3.3:
- resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
- engines: {node: '>= 8'}
- dev: true
-
- /webdriver@8.32.3:
- resolution: {integrity: sha512-1/kpZvuftt59oikHs+6FvWXNfOM5tgMMMAk3LnMe7D938dVOoNGAe46fq0oL/xsxxPicbMRTRgIy1OifLiglaA==}
- engines: {node: ^16.13 || >=18}
- dependencies:
- '@types/node': 20.11.20
- '@types/ws': 8.5.10
- '@wdio/config': 8.32.3
- '@wdio/logger': 8.28.0
- '@wdio/protocols': 8.32.0
- '@wdio/types': 8.32.2
- '@wdio/utils': 8.32.3
- deepmerge-ts: 5.1.0
- got: 12.6.1
- ky: 0.33.3
- ws: 8.16.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /webdriverio@8.32.3(typescript@5.3.3):
- resolution: {integrity: sha512-SupbQKMtUZHSH7lmF5xaJPgxsn8sIBNAjs1CyPI33u30eY9VcVQ4CJQ818ZS3FLxR0q2XdWk9lsQNyhZwlN3RA==}
- engines: {node: ^16.13 || >=18}
- peerDependencies:
- devtools: ^8.14.0
- peerDependenciesMeta:
- devtools:
- optional: true
- dependencies:
- '@types/node': 20.11.20
- '@wdio/config': 8.32.3
- '@wdio/logger': 8.28.0
- '@wdio/protocols': 8.32.0
- '@wdio/repl': 8.24.12
- '@wdio/types': 8.32.2
- '@wdio/utils': 8.32.3
- archiver: 6.0.1
- aria-query: 5.3.0
- css-shorthand-properties: 1.1.1
- css-value: 0.0.1
- devtools-protocol: 0.0.1262051
- grapheme-splitter: 1.0.4
- import-meta-resolve: 4.0.0
- is-plain-obj: 4.1.0
- lodash.clonedeep: 4.5.0
- lodash.zip: 4.2.0
- minimatch: 9.0.3
- puppeteer-core: 20.9.0(typescript@5.3.3)
- query-selector-shadow-dom: 1.0.1
- resq: 1.11.0
- rgb2hex: 0.2.5
- serialize-error: 11.0.3
- webdriver: 8.32.3
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - supports-color
- - typescript
- - utf-8-validate
- dev: true
-
- /webidl-conversions@3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
- dev: true
-
- /webidl-conversions@7.0.0:
- resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
- engines: {node: '>=12'}
- dev: true
-
- /whatwg-encoding@3.1.1:
- resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
- engines: {node: '>=18'}
- dependencies:
- iconv-lite: 0.6.3
- dev: true
-
- /whatwg-mimetype@4.0.0:
- resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
- engines: {node: '>=18'}
- dev: true
-
- /whatwg-url@14.0.0:
- resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
- engines: {node: '>=18'}
- dependencies:
- tr46: 5.0.0
- webidl-conversions: 7.0.0
- dev: true
-
- /whatwg-url@5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
- dependencies:
- tr46: 0.0.3
- webidl-conversions: 3.0.1
- dev: true
-
/which-boxed-primitive@1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
dependencies:
@@ -6186,15 +4443,6 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-collection@1.0.1:
- resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
- dependencies:
- is-map: 2.0.2
- is-set: 2.0.2
- is-weakmap: 2.0.1
- is-weakset: 2.0.2
- dev: true
-
/which-module@2.0.1:
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
dev: true
@@ -6233,14 +4481,6 @@ packages:
isexe: 2.0.0
dev: true
- /which@4.0.0:
- resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
- engines: {node: ^16.13.0 || >=18.0.0}
- hasBin: true
- dependencies:
- isexe: 3.1.1
- dev: true
-
/why-is-node-running@2.2.2:
resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
engines: {node: '>=8'}
@@ -6268,54 +4508,10 @@ packages:
strip-ansi: 6.0.1
dev: true
- /wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-styles: 6.2.1
- string-width: 5.1.2
- strip-ansi: 7.1.0
- dev: true
-
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
- /ws@8.13.0:
- resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: true
-
- /ws@8.16.0:
- resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: true
-
- /xml-name-validator@5.0.0:
- resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
- engines: {node: '>=18'}
- dev: true
-
- /xmlchars@2.2.0:
- resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
- dev: true
-
/y18n@4.0.3:
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
dev: true
@@ -6368,19 +4564,6 @@ packages:
yargs-parser: 18.1.3
dev: true
- /yargs@17.7.1:
- resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
- engines: {node: '>=12'}
- dependencies:
- cliui: 8.0.1
- escalade: 3.1.2
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
- dev: true
-
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
@@ -6394,13 +4577,6 @@ packages:
yargs-parser: 21.1.1
dev: true
- /yauzl@2.10.0:
- resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
- dependencies:
- buffer-crc32: 0.2.13
- fd-slicer: 1.1.0
- dev: true
-
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -6410,12 +4586,3 @@ packages:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
dev: true
-
- /zip-stream@5.0.1:
- resolution: {integrity: sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==}
- engines: {node: '>= 12.0.0'}
- dependencies:
- archiver-utils: 4.0.1
- compress-commons: 5.0.1
- readable-stream: 3.6.2
- dev: true
diff --git a/turbo.json b/turbo.json
index 6433eb9..fb192a5 100644
--- a/turbo.json
+++ b/turbo.json
@@ -14,6 +14,12 @@
"test": {
"outputs": []
},
+ "test:webkit": {
+ "outputs": []
+ },
+ "test:firefox": {
+ "outputs": []
+ },
"lint": {
"outputs": []
}