From fa6fc587e8320e8c0cd1a2728156497055e44e20 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 21:37:31 +0900 Subject: [PATCH 01/25] wip: base setup --- .eslintrc.cjs | 39 + .eslintrc.json | 57 - .prettierignore | 2 + examples/tsconfig.json | 8 + package.json | 154 +- pnpm-lock.yaml | 12412 +++------------- .../01_basic.spec.tsx | 0 .../__snapshots__/01_basic_spec.tsx.snap | 0 {__tests__ => tests}/e2e/01_minimal.ts | 0 {__tests__ => tests}/e2e/02_typescript.ts | 0 {__tests__ => tests}/e2e/03_usestate.ts | 0 {__tests__ => tests}/e2e/04_selector.ts | 0 {__tests__ => tests}/e2e/05_container.ts | 0 {__tests__ => tests}/e2e/06_customhook.ts | 0 {__tests__ => tests}/e2e/07_todolist.ts | 0 {__tests__ => tests}/e2e/08_comparison.ts | 0 {__tests__ => tests}/e2e/09_reactmemo.ts | 0 {__tests__ => tests}/e2e/10_untracked.ts | 0 {__tests__ => tests}/e2e/11_form.ts | 0 {__tests__ => tests}/e2e/12_async.ts | 0 {__tests__ => tests}/e2e/13_saga.ts | 0 {__tests__ => tests}/e2e/14_dynamic.ts | 0 {__tests__ => tests}/e2e/15_reactmemoref.ts | 0 .../e2e/__snapshots__/01_minimal.ts.snap | 0 .../e2e/__snapshots__/02_typescript.ts.snap | 0 .../e2e/__snapshots__/03_usestate.ts.snap | 0 .../e2e/__snapshots__/04_selector.ts.snap | 0 .../e2e/__snapshots__/05_container.ts.snap | 0 .../e2e/__snapshots__/06_customhook.ts.snap | 0 .../e2e/__snapshots__/07_todolist.ts.snap | 0 .../e2e/__snapshots__/08_comparison.ts.snap | 0 .../e2e/__snapshots__/09_reactmemo.ts.snap | 0 .../e2e/__snapshots__/10_untracked.ts.snap | 0 .../e2e/__snapshots__/11_form.ts.snap | 0 .../e2e/__snapshots__/12_async.ts.snap | 0 .../e2e/__snapshots__/13_saga.ts.snap | 0 .../e2e/__snapshots__/14_dynamic.ts.snap | 0 .../e2e/__snapshots__/15_reactmemoref.ts.snap | 0 tests/vitest-setup.js | 1 + tsconfig.cjs.json | 10 + tsconfig.esm.json | 8 + tsconfig.json | 16 +- vite.config.ts | 65 + webpack.config.js | 41 - 44 files changed, 2457 insertions(+), 10356 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 .eslintrc.json create mode 100644 .prettierignore create mode 100644 examples/tsconfig.json rename __tests__/01_basic_spec.tsx => tests/01_basic.spec.tsx (100%) rename {__tests__ => tests}/__snapshots__/01_basic_spec.tsx.snap (100%) rename {__tests__ => tests}/e2e/01_minimal.ts (100%) rename {__tests__ => tests}/e2e/02_typescript.ts (100%) rename {__tests__ => tests}/e2e/03_usestate.ts (100%) rename {__tests__ => tests}/e2e/04_selector.ts (100%) rename {__tests__ => tests}/e2e/05_container.ts (100%) rename {__tests__ => tests}/e2e/06_customhook.ts (100%) rename {__tests__ => tests}/e2e/07_todolist.ts (100%) rename {__tests__ => tests}/e2e/08_comparison.ts (100%) rename {__tests__ => tests}/e2e/09_reactmemo.ts (100%) rename {__tests__ => tests}/e2e/10_untracked.ts (100%) rename {__tests__ => tests}/e2e/11_form.ts (100%) rename {__tests__ => tests}/e2e/12_async.ts (100%) rename {__tests__ => tests}/e2e/13_saga.ts (100%) rename {__tests__ => tests}/e2e/14_dynamic.ts (100%) rename {__tests__ => tests}/e2e/15_reactmemoref.ts (100%) rename {__tests__ => tests}/e2e/__snapshots__/01_minimal.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/02_typescript.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/03_usestate.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/04_selector.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/05_container.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/06_customhook.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/07_todolist.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/08_comparison.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/09_reactmemo.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/10_untracked.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/11_form.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/12_async.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/13_saga.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/14_dynamic.ts.snap (100%) rename {__tests__ => tests}/e2e/__snapshots__/15_reactmemoref.ts.snap (100%) create mode 100644 tests/vitest-setup.js create mode 100644 tsconfig.cjs.json create mode 100644 tsconfig.esm.json create mode 100644 vite.config.ts delete mode 100644 webpack.config.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..83565100 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,39 @@ +/* eslint-env node */ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + 'plugin:jsx-a11y/recommended', + 'prettier', + ], + ignorePatterns: ['dist/'], + settings: { + 'import/resolver': { + typescript: true, + }, + react: { version: 'detect' }, + }, + rules: { + 'import/no-unresolved': ['error', { ignore: ['react-tracked'] }], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index d6b42512..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint", - "react-hooks" - ], - "extends": [ - "plugin:@typescript-eslint/recommended", - "airbnb" - ], - "env": { - "browser": true - }, - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".ts", ".tsx"] - } - } - }, - "rules": { - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": ["error", { "additionalHooks": "useIsomorphicLayoutEffect" }], - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-explicit-any": "off", - "react/jsx-filename-extension": ["error", { "extensions": [".js", ".tsx"] }], - "react/prop-types": "off", - "react/jsx-one-expression-per-line": "off", - "import/extensions": ["error", "never"], - "import/prefer-default-export": "off", - "import/no-unresolved": ["error", { "ignore": ["react-tracked"] }], - "no-param-reassign": "off", - "no-plusplus": "off", - "no-bitwise": "off", - "symbol-description": "off", - "prefer-object-spread": "off", - "no-use-before-define": "off", - "no-unused-vars": "off", - "no-redeclare": "off", - "react/function-component-definition": ["error", { "namedComponents": "arrow-function" }] - }, - "overrides": [{ - "files": ["__tests__/**/*"], - "env": { - "jest": true - }, - "rules": { - "import/no-extraneous-dependencies": ["error", { "devDependencies": true }] - } - }, { - "files": ["examples/**/*"], - "rules": { - "import/no-extraneous-dependencies": "off" - } - }] -} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..e6d29c29 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +/pnpm-lock.yaml +/dist diff --git a/examples/tsconfig.json b/examples/tsconfig.json new file mode 100644 index 00000000..17f64cf3 --- /dev/null +++ b/examples/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler" + }, + "exclude": [] +} diff --git a/package.json b/package.json index b5c31305..3c56b956 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "publishConfig": { "tag": "next" }, + "type": "module", "author": "Daishi Kato", "repository": { "type": "git", @@ -12,15 +13,19 @@ }, "homepage": "https://react-tracked.js.org", "source": "./src/index.ts", - "main": "./dist/index.umd.js", - "module": "./dist/index.modern.js", - "types": "./dist/src/index.d.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/src/index.d.ts", - "import": "./dist/index.modern.mjs", - "default": "./dist/index.umd.js" + "require": { + "types": "./dist/cjs/index.d.ts", + "default": "./dist/cjs/index.js" + }, + "default": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } } }, "sideEffects": false, @@ -28,49 +33,33 @@ "src", "dist" ], + "packageManager": "pnpm@8.15.0", "scripts": { - "compile": "microbundle build -f modern,umd --globals react=React --no-compress", - "postcompile": "cp dist/index.modern.mjs dist/index.modern.js && cp dist/index.modern.mjs.map dist/index.modern.js.map", - "test": "run-s eslint tsc-test jest prepare-e2e e2e-test:*", - "eslint": "eslint --ext .js,.ts,.tsx --ignore-path .gitignore --ignore-pattern dist .", - "jest": "jest --preset ts-jest/presets/js-with-ts --env jsdom __tests__/*.tsx", - "tsc-test": "tsc --project . --noEmit", - "prepare-e2e": "test -z $CI || node node_modules/puppeteer/install.mjs", - "e2e-test:01_minimal": "server-test examples:01_minimal 8080 'jest --preset jest-puppeteer __tests__/e2e/01_minimal.ts'", - "e2e-test:02_typescript": "server-test examples:02_typescript 8080 'jest --preset jest-puppeteer __tests__/e2e/02_typescript.ts'", - "e2e-test:03_usestate": "server-test examples:03_usestate 8080 'jest --preset jest-puppeteer __tests__/e2e/03_usestate.ts'", - "e2e-test:04_selector": "server-test examples:04_selector 8080 'jest --preset jest-puppeteer __tests__/e2e/04_selector.ts'", - "e2e-test:05_container": "server-test examples:05_container 8080 'jest --preset jest-puppeteer __tests__/e2e/05_container.ts'", - "e2e-test:06_customhook": "server-test examples:06_customhook 8080 'jest --preset jest-puppeteer __tests__/e2e/06_customhook.ts'", - "e2e-test:07_todolist": "server-test examples:07_todolist 8080 'jest --preset jest-puppeteer __tests__/e2e/07_todolist.ts'", - "e2e-test:08_comparison": "server-test examples:08_comparison 8080 'jest --preset jest-puppeteer __tests__/e2e/08_comparison.ts'", - "e2e-test:09_reactmemo": "server-test examples:09_reactmemo 8080 'jest --preset jest-puppeteer __tests__/e2e/09_reactmemo.ts'", - "e2e-test:10_untracked": "server-test examples:10_untracked 8080 'jest --preset jest-puppeteer __tests__/e2e/10_untracked.ts'", - "e2e-test:11_form": "server-test examples:11_form 8080 'jest --preset jest-puppeteer __tests__/e2e/11_form.ts'", - "e2e-test:12_async": "server-test examples:12_async 8080 'jest --preset jest-puppeteer __tests__/e2e/12_async.ts'", - "e2e-test:13_saga": "server-test examples:13_saga 8080 'jest --preset jest-puppeteer __tests__/e2e/13_saga.ts'", - "e2e-test:14_dynamic": "server-test examples:14_dynamic 8080 'jest --preset jest-puppeteer __tests__/e2e/14_dynamic.ts'", - "e2e-test:15_reactmemoref": "server-test examples:15_reactmemoref 8080 'jest --preset jest-puppeteer __tests__/e2e/15_reactmemoref.ts'", - "examples:01_minimal": "DIR=01_minimal EXT=js webpack serve", - "examples:02_typescript": "DIR=02_typescript webpack serve", - "examples:03_usestate": "DIR=03_usestate webpack serve", - "examples:04_selector": "DIR=04_selector webpack serve", - "examples:05_container": "DIR=05_container webpack serve", - "examples:06_customhook": "DIR=06_customhook EXT=tsx webpack serve", - "examples:07_todolist": "DIR=07_todolist webpack serve", - "examples:08_comparison": "DIR=08_comparison webpack serve", - "examples:09_reactmemo": "DIR=09_reactmemo webpack serve", - "examples:10_untracked": "DIR=10_untracked webpack serve", - "examples:11_form": "DIR=11_form webpack serve", - "examples:12_async": "DIR=12_async webpack serve", - "examples:13_saga": "DIR=13_saga webpack serve", - "examples:14_dynamic": "DIR=14_dynamic webpack serve", - "examples:15_reactmemoref": "DIR=15_reactmemoref webpack serve" - }, - "jest": { - "transform": { - "^.+\\.ts$": "ts-jest" - } + "compile": "rm -rf dist && pnpm run '/^compile:.*/'", + "compile:esm": "tsc -p tsconfig.esm.json", + "compile:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json", + "test": "pnpm run '/^test:.*/'", + "test:format": "prettier -c .", + "test:lint": "eslint .", + "test:types": "tsc -p . --noEmit", + "test:types:examples": "tsc -p examples --noEmit", + "test:spec": "vitest run", + "text:e2e": "echo 'TODO'", + "examples:01_counter": "DIR=01_counter vite", + "examples:02_typescript": "DIR=02_typescript vite", + "examples:03_usestate": "DIR=03_usestate vite", + "examples:04_selector": "DIR=04_selector vite", + "examples:05_container": "DIR=05_container vite", + "examples:06_customhook": "DIR=06_customhook EXT=tsx vite", + "examples:07_todolist": "DIR=07_todolist vite", + "examples:08_comparison": "DIR=08_comparison vite", + "examples:09_reactmemo": "DIR=09_reactmemo vite", + "examples:10_untracked": "DIR=10_untracked vite", + "examples:11_form": "DIR=11_form vite", + "examples:12_async": "DIR=12_async vite", + "examples:13_saga": "DIR=13_saga vite", + "examples:14_dynamic": "DIR=14_dynamic vite", + "examples:15_reactmemoref": "DIR=15_reactmemoref vite" }, "keywords": [ "react", @@ -79,58 +68,43 @@ "hooks" ], "license": "MIT", + "prettier": { + "singleQuote": true + }, "dependencies": { - "proxy-compare": "2.6.0", - "use-context-selector": "1.4.4" + "proxy-compare": "^3.0.0", + "use-context-selector": "^2.0.0-beta.0" }, "devDependencies": { - "@testing-library/react": "^14.2.1", - "@types/jest": "^29.5.12", - "@types/jest-environment-puppeteer": "^5.0.6", - "@types/react": "^18.2.61", - "@types/react-dom": "^18.2.19", - "@types/scheduler": "^0.16.8", - "@typescript-eslint/eslint-plugin": "^7.1.0", - "@typescript-eslint/parser": "^7.1.0", - "eslint": "^8.57.0", - "eslint-config-airbnb": "^19.0.4", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/react": "^15.0.5", + "@testing-library/user-event": "^14.5.2", + "@types/node": "^20.12.7", + "@types/react": "^18.3.1", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/parser": "^7.7.1", + "eslint": "8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "html-webpack-plugin": "^5.6.0", - "immer": "^10.0.3", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "jest-puppeteer": "^10.0.1", - "microbundle": "^0.15.1", - "npm-run-all": "^4.1.5", - "puppeteer": "^22.3.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^4.6.2", + "happy-dom": "^14.7.1", + "prettier": "^3.2.5", + "react": "^18.3.1", + "react-dom": "^18.3.1", "redux-saga": "^1.3.0", - "start-server-and-test": "^2.0.3", - "ts-jest": "^29.1.2", - "ts-loader": "^9.5.1", - "typescript": "^5.3.3", + "ts-expect": "^1.3.0", + "typescript": "^5.4.5", "use-reducer-async": "^2.1.1", "use-saga-reducer": "^3.0.0", - "webpack": "^5.90.3", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.0.2" + "vite": "^5.2.10", + "vitest": "^1.5.2" }, "peerDependencies": { - "react": ">=16.8.0", - "react-dom": "*", - "react-native": "*", + "react": ">=18.0.0", "scheduler": ">=0.19.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b50eb06b..cc952a63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9408 +6,2749 @@ settings: dependencies: proxy-compare: - specifier: 2.6.0 - version: 2.6.0 - react-native: - specifier: '*' - version: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) + specifier: ^3.0.0 + version: 3.0.0 scheduler: specifier: '>=0.19.0' - version: 0.23.0 + version: 0.23.2 use-context-selector: - specifier: 1.4.4 - version: 1.4.4(react-dom@18.2.0)(react-native@0.73.5)(react@18.2.0)(scheduler@0.23.0) + specifier: ^2.0.0-beta.0 + version: 2.0.0-beta.0(react@18.3.1)(scheduler@0.23.2) devDependencies: + '@testing-library/jest-dom': + specifier: ^6.4.2 + version: 6.4.2(vitest@1.5.2) '@testing-library/react': - specifier: ^14.2.1 - version: 14.2.1(react-dom@18.2.0)(react@18.2.0) - '@types/jest': - specifier: ^29.5.12 - version: 29.5.12 - '@types/jest-environment-puppeteer': - specifier: ^5.0.6 - version: 5.0.6 + specifier: ^15.0.5 + version: 15.0.5(react-dom@18.3.1)(react@18.3.1) + '@testing-library/user-event': + specifier: ^14.5.2 + version: 14.5.2(@testing-library/dom@10.1.0) + '@types/node': + specifier: ^20.12.7 + version: 20.12.7 '@types/react': - specifier: ^18.2.61 - version: 18.2.61 + specifier: ^18.3.1 + version: 18.3.1 '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.19 - '@types/scheduler': - specifier: ^0.16.8 - version: 0.16.8 + specifier: ^18.3.0 + version: 18.3.0 '@typescript-eslint/eslint-plugin': - specifier: ^7.1.0 - version: 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.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.1.0 - version: 7.1.0(eslint@8.57.0)(typescript@5.3.3) + specifier: ^7.7.1 + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.57.0 + specifier: 8.57.0 version: 8.57.0 - eslint-config-airbnb: - specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.57.0) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-import-resolver-typescript: + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@7.7.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: specifier: ^6.8.0 version: 6.8.0(eslint@8.57.0) eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.57.0) + specifier: ^7.34.1 + version: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.57.0) - html-webpack-plugin: - specifier: ^5.6.0 - version: 5.6.0(webpack@5.90.3) - immer: - specifier: ^10.0.3 - version: 10.0.3 - jest: - specifier: ^29.7.0 - version: 29.7.0 - jest-environment-jsdom: - specifier: ^29.7.0 - version: 29.7.0 - jest-puppeteer: - specifier: ^10.0.1 - version: 10.0.1(puppeteer@22.3.0)(typescript@5.3.3) - microbundle: - specifier: ^0.15.1 - version: 0.15.1 - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 - puppeteer: - specifier: ^22.3.0 - version: 22.3.0(typescript@5.3.3) + specifier: ^4.6.2 + version: 4.6.2(eslint@8.57.0) + happy-dom: + specifier: ^14.7.1 + version: 14.7.1 + prettier: + specifier: ^3.2.5 + version: 3.2.5 react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) redux-saga: specifier: ^1.3.0 version: 1.3.0 - start-server-and-test: - specifier: ^2.0.3 - version: 2.0.3 - ts-jest: - specifier: ^29.1.2 - version: 29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.3.3) - ts-loader: - specifier: ^9.5.1 - version: 9.5.1(typescript@5.3.3)(webpack@5.90.3) + ts-expect: + specifier: ^1.3.0 + version: 1.3.0 typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 use-reducer-async: specifier: ^2.1.1 - version: 2.1.1(react@18.2.0) + version: 2.1.1(react@18.3.1) use-saga-reducer: specifier: ^3.0.0 - version: 3.0.0(react@18.2.0)(redux-saga@1.3.0) - webpack: - specifier: ^5.90.3 - version: 5.90.3(webpack-cli@5.1.4) - webpack-cli: - specifier: ^5.1.4 - version: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - webpack-dev-server: - specifier: ^5.0.2 - version: 5.0.2(webpack-cli@5.1.4)(webpack@5.90.3) + version: 3.0.0(react@18.3.1)(redux-saga@1.3.0) + vite: + specifier: ^5.2.10 + version: 5.2.10(@types/node@20.12.7) + vitest: + specifier: ^1.5.2 + version: 1.5.2(@types/node@20.12.7)(happy-dom@14.7.1) packages: - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + /@adobe/css-tools@4.3.3: + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} dev: true - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.24 - - /@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/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: true - /@babel/core@7.24.0: - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: true - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + /@babel/runtime@7.24.4: + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.24 - jsesc: 2.5.2 + regenerator-runtime: 0.14.1 + dev: true - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0): - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@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: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true - /@babel/helpers@7.24.0: - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} - engines: {node: '>=6.9.0'} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser@7.24.0: - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.24.0 + /@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 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0): - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.0): - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - dev: false + '@sinclair/typebox': 0.27.8 + dev: true - /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.24.0): - resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.0): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - dev: false + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true - /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) - dev: false + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.0): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - dev: false + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.0): - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@redux-saga/core@1.3.0: + resolution: {integrity: sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - dev: false + '@babel/runtime': 7.24.4 + '@redux-saga/deferred': 1.2.1 + '@redux-saga/delay-p': 1.2.1 + '@redux-saga/is': 1.1.3 + '@redux-saga/symbols': 1.1.3 + '@redux-saga/types': 1.2.1 + typescript-tuple: 2.2.1 + dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.0): - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) - dev: false + /@redux-saga/deferred@1.2.1: + resolution: {integrity: sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==} + dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.0): - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@redux-saga/delay-p@1.2.1: + resolution: {integrity: sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - dev: false + '@redux-saga/symbols': 1.1.3 + dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.0): - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. - peerDependencies: - '@babel/core': ^7.0.0-0 + /@redux-saga/is@1.1.3: + resolution: {integrity: sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - dev: false + '@redux-saga/symbols': 1.1.3 + '@redux-saga/types': 1.2.1 + dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 + /@redux-saga/symbols@1.1.3: + resolution: {integrity: sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==} + dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@redux-saga/types@1.2.1: + resolution: {integrity: sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==} + dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-android-arm-eabi@4.17.1: + resolution: {integrity: sha512-P6Wg856Ou/DLpR+O0ZLneNmrv7QpqBg+hK4wE05ijbC/t349BRfMfx+UFj5Ha3fCFopIa6iSZlpdaB4agkWp2Q==} + cpu: [arm] + os: [android] + requiresBuild: true dev: true + optional: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-android-arm64@4.17.1: + resolution: {integrity: sha512-piwZDjuW2WiHr05djVdUkrG5JbjnGbtx8BXQchYCMfib/nhjzWoiScelZ+s5IJI7lecrwSxHCzW026MWBL+oJQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-darwin-arm64@4.17.1: + resolution: {integrity: sha512-LsZXXIsN5Q460cKDT4Y+bzoPDhBmO5DTr7wP80d+2EnYlxSgkwdPfE3hbE+Fk8dtya+8092N9srjBTJ0di8RIA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-darwin-x64@4.17.1: + resolution: {integrity: sha512-S7TYNQpWXB9APkxu/SLmYHezWwCoZRA9QLgrDeml+SR2A1LLPD2DBUdUlvmCF7FUpRMKvbeeWky+iizQj65Etw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false + /@rollup/rollup-linux-arm-gnueabihf@4.17.1: + resolution: {integrity: sha512-Lq2JR5a5jsA5um2ZoLiXXEaOagnVyCpCW7xvlcqHC7y46tLwTEgUSTM3a2TfmmTMmdqv+jknUioWXlmxYxE9Yw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-arm-musleabihf@4.17.1: + resolution: {integrity: sha512-9BfzwyPNV0IizQoR+5HTNBGkh1KXE8BqU0DBkqMngmyFW7BfuIZyMjQ0s6igJEiPSBvT3ZcnIFohZ19OqjhDPg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-arm64-gnu@4.17.1: + resolution: {integrity: sha512-e2uWaoxo/rtzA52OifrTSXTvJhAXb0XeRkz4CdHBK2KtxrFmuU/uNd544Ogkpu938BzEfvmWs8NZ8Axhw33FDw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-arm64-musl@4.17.1: + resolution: {integrity: sha512-ekggix/Bc/d/60H1Mi4YeYb/7dbal1kEDZ6sIFVAE8pUSx7PiWeEh+NWbL7bGu0X68BBIkgF3ibRJe1oFTksQQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-powerpc64le-gnu@4.17.1: + resolution: {integrity: sha512-UGV0dUo/xCv4pkr/C8KY7XLFwBNnvladt8q+VmdKrw/3RUd3rD0TptwjisvE2TTnnlENtuY4/PZuoOYRiGp8Gw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-riscv64-gnu@4.17.1: + resolution: {integrity: sha512-gEYmYYHaehdvX46mwXrU49vD6Euf1Bxhq9pPb82cbUU9UT2NV+RSckQ5tKWOnNXZixKsy8/cPGtiUWqzPuAcXQ==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-s390x-gnu@4.17.1: + resolution: {integrity: sha512-xeae5pMAxHFp6yX5vajInG2toST5lsCTrckSRUFwNgzYqnUjNBcQyqk1bXUxX5yhjWFl2Mnz3F8vQjl+2FRIcw==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-x64-gnu@4.17.1: + resolution: {integrity: sha512-AsdnINQoDWfKpBzCPqQWxSPdAWzSgnYbrJYtn6W0H2E9It5bZss99PiLA8CgmDRfvKygt20UpZ3xkhFlIfX9zQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-linux-x64-musl@4.17.1: + resolution: {integrity: sha512-KoB4fyKXTR+wYENkIG3fFF+5G6N4GFvzYx8Jax8BR4vmddtuqSb5oQmYu2Uu067vT/Fod7gxeQYKupm8gAcMSQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-win32-arm64-msvc@4.17.1: + resolution: {integrity: sha512-J0d3NVNf7wBL9t4blCNat+d0PYqAx8wOoY+/9Q5cujnafbX7BmtYk3XvzkqLmFECaWvXGLuHmKj/wrILUinmQg==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-win32-ia32-msvc@4.17.1: + resolution: {integrity: sha512-xjgkWUwlq7IbgJSIxvl516FJ2iuC/7ttjsAxSPpC9kkI5iQQFHKyEN5BjbhvJ/IXIZ3yIBcW5QDlWAyrA+TFag==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@rollup/rollup-win32-x64-msvc@4.17.1: + resolution: {integrity: sha512-0QbCkfk6cnnVKWqqlC0cUrrUMDMfu5ffvYMTUHf+qMN2uAb3MKP31LPcwiMXBNsvoFGs/kYdFOsuLmvppCopXA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@testing-library/dom@10.1.0: + resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} + engines: {node: '>=18'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/code-frame': 7.24.2 + '@babel/runtime': 7.24.4 + '@types/aria-query': 5.0.4 + 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 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} + /@testing-library/jest-dom@6.4.2(vitest@1.5.2): + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@adobe/css-tools': 4.3.3 + '@babel/runtime': 7.24.4 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + vitest: 1.5.2(@types/node@20.12.7)(happy-dom@14.7.1) + dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + /@testing-library/react@15.0.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ttodVWYA2i2w4hRa6krKrmS1vKxAEkwDz34y+CwbcrbZUxFzUYN3a5xZyFKo+K6LBseCRCUkwcjATpaNn/UsIA==} + engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.0.0-0 + react: ^18.0.0 + react-dom: ^18.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/runtime': 7.24.4 + '@testing-library/dom': 10.1.0 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} + /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@testing-library/dom': '>=7.21.4' dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@testing-library/dom': 10.1.0 + dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true - /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0): - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + undici-types: 5.26.5 + dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@types/react': 18.3.1 + dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + /@types/react@18.3.1: + resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + dev: true - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0): - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@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: - '@babel/core': ^7.0.0-0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@eslint-community/regexpp': 4.10.0 + '@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.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.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: - '@babel/core': ^7.0.0-0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@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.57.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.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: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/visitor-keys': 7.7.1 + dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.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: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@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.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + /@typescript-eslint/types@7.7.1: + resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.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: - '@babel/core': ^7.0.0-0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + '@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.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} - engines: {node: '>=6.9.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: - '@babel/core': ^7.0.0-0 + eslint: ^8.56.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@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 - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0): - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@typescript-eslint/visitor-keys@7.7.1: + resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@typescript-eslint/types': 7.7.1 + eslint-visitor-keys: 3.4.3 + dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@vitest/expect@1.5.2: + resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@vitest/spy': 1.5.2 + '@vitest/utils': 1.5.2 + chai: 4.4.1 + dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@vitest/runner@1.5.2: + resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@vitest/utils': 1.5.2 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@vitest/snapshot@1.5.2: + resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@vitest/spy@1.5.2: + resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + tinyspy: 2.2.1 + dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@vitest/utils@1.5.2: + resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: - '@babel/core': ^7.0.0-0 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 + acorn: 8.11.3 + dev: true - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0): - resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + color-convert: 1.9.3 + dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + color-convert: 2.0.1 + dev: true - /@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + dequal: 2.0.3 + dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true - /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.0): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/types': 7.24.0 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true - /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - regenerator-transform: 0.15.2 + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + possible-typed-array-names: 1.0.0 + dev: true - /@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.0): - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) - dev: false + dequal: 2.0.3 + dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + balanced-match: 1.0.2 + dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + fill-range: 7.0.1 + dev: true - /@babel/preset-env@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.0) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-object-rest-spread': 7.24.0(@babel/core@7.24.0) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) - core-js-compat: 3.36.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true - /@babel/preset-flow@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 - esutils: 2.0.3 + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - /@babel/preset-react@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.0) - '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.24.0) + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 dev: true - /@babel/preset-typescript@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) - dev: false - - /@babel/register@7.23.7(@babel/core@7.24.0): - resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - dev: false - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - /@babel/runtime@7.24.0: - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} - engines: {node: '>=6.9.0'} + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: - regenerator-runtime: 0.14.1 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true - /@babel/traverse@7.24.0: - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} - engines: {node: '>=6.9.0'} + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + get-func-name: 2.0.2 dev: true - /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 dev: true - /@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 + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 + color-name: 1.1.4 dev: true - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - dependencies: - '@hapi/hoek': 9.3.0 + /confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + dev: true - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 dev: true - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 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 + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /@isaacs/ttlcache@1.4.1: - resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} - engines: {node: '>=12'} - dev: false - - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dev: true - /@jest/core@29.7.0: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + supports-color: '*' peerDependenciesMeta: - node-notifier: + supports-color: optional: true dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.11.24) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node + ms: 2.1.3 dev: true - /@jest/create-cache-key-function@29.7.0: - resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - '@jest/types': 29.6.3 - dev: false + ms: 2.1.2 + dev: true - /@jest/environment@27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.11.24 - jest-mock: 27.5.1 + type-detect: 4.0.8 dev: true - /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - jest-mock: 29.7.0 + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: - jest-get-type: 29.6.3 + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 dev: true - /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 dev: true - /@jest/fake-timers@27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.11.24 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-util: 27.5.1 + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} dev: true - /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.11.24 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + dev: true - /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color + path-type: 4.0.0 dev: true - /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.24 - '@types/node': 20.11.24 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 - transitivePeerDependencies: - - supports-color + esutils: 2.0.3 dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: - '@sinclair/typebox': 0.27.8 + esutils: 2.0.3 + dev: true - /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.24 - callsites: 3.1.0 - graceful-fs: 4.2.11 + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true - /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} dev: true - /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} dependencies: - '@babel/core': 7.24.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.24 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.5 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color + tapable: 2.2.1 dev: true - /@jest/types@26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.24 - '@types/yargs': 15.0.19 - chalk: 4.1.2 - dev: false - - /@jest/types@27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.24 - '@types/yargs': 16.0.9 - chalk: 4.1.2 + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: true - /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.24 - '@types/yargs': 17.0.32 - chalk: 4.1.2 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.24 - - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + get-intrinsic: 1.2.4 + dev: true - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.24 - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true - /@jridgewell/trace-mapping@0.3.24: - resolution: {integrity: sha512-+VaWXDa6+l6MhflBvVXjIEAzb59nQ2JUK3bwRp2zRpPtU+8TFRy9Gg/5oIcNlkEL5PGlBFGfemUVvIgLnTzq7Q==} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + es-errors: 1.3.0 dev: true - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 dev: true - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: true - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true requiresBuild: true + optionalDependencies: + '@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 - optional: true - /@puppeteer/browsers@2.1.0: - resolution: {integrity: sha512-xloWvocjvryHdUjDam/ZuGMh7zn4Sn3ZAaV4Ah2e2EwEt90N3XphZlSsU3n0VDc1F7kggCjMuH0UuxfPQ5mD9w==} - engines: {node: '>=18'} - hasBin: true - dependencies: - debug: 4.3.4 - extract-zip: 2.0.1 - progress: 2.0.3 - proxy-agent: 6.4.0 - semver: 7.6.0 - tar-fs: 3.0.5 - unbzip2-stream: 1.4.3 - yargs: 17.7.2 - transitivePeerDependencies: - - supports-color + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: true - /@react-native-community/cli-clean@12.3.6: - resolution: {integrity: sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==} - dependencies: - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - execa: 5.1.1 - transitivePeerDependencies: - - encoding - dev: false + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true - /@react-native-community/cli-config@12.3.6: - resolution: {integrity: sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==} + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - cosmiconfig: 5.2.1 - deepmerge: 4.3.1 - glob: 7.2.3 - joi: 17.12.2 - transitivePeerDependencies: - - encoding - dev: false + eslint: 8.57.0 + dev: true - /@react-native-community/cli-debugger-ui@12.3.6: - resolution: {integrity: sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - serve-static: 1.15.0 + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: false + dev: true - /@react-native-community/cli-doctor@12.3.6: - resolution: {integrity: sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==} + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: - '@react-native-community/cli-config': 12.3.6 - '@react-native-community/cli-platform-android': 12.3.6 - '@react-native-community/cli-platform-ios': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - command-exists: 1.2.9 - deepmerge: 4.3.1 - envinfo: 7.11.1 - execa: 5.1.1 - hermes-profile-transformer: 0.0.6 - node-stream-zip: 1.15.0 - ora: 5.4.1 - semver: 7.6.0 - strip-ansi: 5.2.0 - wcwidth: 1.0.1 - yaml: 2.4.0 + debug: 4.3.4 + enhanced-resolve: 5.16.0 + eslint: 8.57.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.3 + is-core-module: 2.13.1 + is-glob: 4.0.3 transitivePeerDependencies: - - encoding - dev: false + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true - /@react-native-community/cli-hermes@12.3.6: - resolution: {integrity: sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==} + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: - '@react-native-community/cli-platform-android': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - hermes-profile-transformer: 0.0.6 + '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - - encoding - dev: false + - supports-color + dev: true - /@react-native-community/cli-platform-android@12.3.6: - resolution: {integrity: sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - execa: 5.1.1 - fast-xml-parser: 4.3.5 - glob: 7.2.3 - logkitty: 0.7.1 - transitivePeerDependencies: - - encoding - dev: false - - /@react-native-community/cli-platform-ios@12.3.6: - resolution: {integrity: sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==} - dependencies: - '@react-native-community/cli-tools': 12.3.6 - chalk: 4.1.2 - execa: 5.1.1 - fast-xml-parser: 4.3.5 - glob: 7.2.3 - ora: 5.4.1 - transitivePeerDependencies: - - encoding - dev: false - - /@react-native-community/cli-plugin-metro@12.3.6: - resolution: {integrity: sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==} - dev: false - - /@react-native-community/cli-server-api@12.3.6: - resolution: {integrity: sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==} - dependencies: - '@react-native-community/cli-debugger-ui': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - compression: 1.7.4 - connect: 3.7.0 - errorhandler: 1.5.1 - nocache: 3.0.4 - pretty-format: 26.6.2 - serve-static: 1.15.0 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /@react-native-community/cli-tools@12.3.6: - resolution: {integrity: sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==} - dependencies: - appdirsjs: 1.2.7 - chalk: 4.1.2 - find-up: 5.0.0 - mime: 2.6.0 - node-fetch: 2.7.0 - open: 6.4.0 - ora: 5.4.1 - semver: 7.6.0 - shell-quote: 1.8.1 - sudo-prompt: 9.2.1 - transitivePeerDependencies: - - encoding - dev: false - - /@react-native-community/cli-types@12.3.6: - resolution: {integrity: sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==} - dependencies: - joi: 17.12.2 - dev: false - - /@react-native-community/cli@12.3.6: - resolution: {integrity: sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==} - engines: {node: '>=18'} - hasBin: true - dependencies: - '@react-native-community/cli-clean': 12.3.6 - '@react-native-community/cli-config': 12.3.6 - '@react-native-community/cli-debugger-ui': 12.3.6 - '@react-native-community/cli-doctor': 12.3.6 - '@react-native-community/cli-hermes': 12.3.6 - '@react-native-community/cli-plugin-metro': 12.3.6 - '@react-native-community/cli-server-api': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - '@react-native-community/cli-types': 12.3.6 - chalk: 4.1.2 - commander: 9.5.0 - deepmerge: 4.3.1 - execa: 5.1.1 - find-up: 4.1.0 - fs-extra: 8.1.0 - graceful-fs: 4.2.11 - prompts: 2.4.2 - semver: 7.6.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /@react-native/assets-registry@0.73.1: - resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} - engines: {node: '>=18'} - dev: false - - /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==} - engines: {node: '>=18'} - dependencies: - '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.0) - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - dev: false - - /@react-native/babel-preset@0.73.21(@babel/core@7.24.0)(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.0) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.0) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-runtime': 7.24.0(@babel/core@7.24.0) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) - '@babel/template': 7.24.0 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.0) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.0) - react-refresh: 0.14.0 + '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + hasown: 2.0.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - - '@babel/preset-env' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack - supports-color - dev: false + dev: true - /@react-native/codegen@0.73.3(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} - engines: {node: '>=18'} + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} peerDependencies: - '@babel/preset-env': ^7.1.6 - dependencies: - '@babel/parser': 7.24.0 - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - flow-parser: 0.206.0 - glob: 7.2.3 - invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.24.0) - mkdirp: 0.5.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.0)(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==} - engines: {node: '>=18'} - dependencies: - '@react-native-community/cli-server-api': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - '@react-native/dev-middleware': 0.73.8 - '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.0)(@babel/preset-env@7.24.0) - chalk: 4.1.2 - execa: 5.1.1 - metro: 0.80.6 - metro-config: 0.80.6 - metro-core: 0.80.6 - node-fetch: 2.7.0 - readline: 1.3.0 - transitivePeerDependencies: - - '@babel/core' - - '@babel/preset-env' - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /@react-native/debugger-frontend@0.73.3: - resolution: {integrity: sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==} - engines: {node: '>=18'} - dev: false - - /@react-native/dev-middleware@0.73.8: - resolution: {integrity: sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==} - engines: {node: '>=18'} + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.73.3 - chrome-launcher: 0.15.2 - chromium-edge-launcher: 1.0.0 - connect: 3.7.0 - debug: 2.6.9 - node-fetch: 2.7.0 - open: 7.4.2 - serve-static: 1.15.0 - temp-dir: 2.0.0 - ws: 6.2.2 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /@react-native/gradle-plugin@0.73.4: - resolution: {integrity: sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==} - engines: {node: '>=18'} - dev: false - - /@react-native/js-polyfills@0.73.1: - resolution: {integrity: sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==} - engines: {node: '>=18'} - dev: false + '@babel/runtime': 7.24.4 + aria-query: 5.3.0 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + dev: true - /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.0)(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==} - engines: {node: '>=18'} + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} peerDependencies: - '@babel/core': '*' + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@react-native/babel-preset': 0.73.21(@babel/core@7.24.0)(@babel/preset-env@7.24.0) - hermes-parser: 0.15.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - dev: false - - /@react-native/normalize-colors@0.73.2: - resolution: {integrity: sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==} - dev: false + eslint: 8.57.0 + dev: true - /@react-native/virtualized-lists@0.73.4(react-native@0.73.5): - resolution: {integrity: sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==} - engines: {node: '>=18'} + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} peerDependencies: - react-native: '*' + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - invariant: 2.2.4 - nullthrows: 1.1.1 - react-native: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) - dev: false + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + dev: true - /@redux-saga/core@1.3.0: - resolution: {integrity: sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@babel/runtime': 7.24.0 - '@redux-saga/deferred': 1.2.1 - '@redux-saga/delay-p': 1.2.1 - '@redux-saga/is': 1.1.3 - '@redux-saga/symbols': 1.1.3 - '@redux-saga/types': 1.2.1 - typescript-tuple: 2.2.1 + esrecurse: 4.3.0 + estraverse: 5.3.0 dev: true - /@redux-saga/deferred@1.2.1: - resolution: {integrity: sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@redux-saga/delay-p@1.2.1: - resolution: {integrity: sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: - '@redux-saga/symbols': 1.1.3 + '@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.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color dev: true - /@redux-saga/is@1.1.3: - resolution: {integrity: sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@redux-saga/symbols': 1.1.3 - '@redux-saga/types': 1.2.1 - dev: true - - /@redux-saga/symbols@1.1.3: - resolution: {integrity: sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==} - dev: true - - /@redux-saga/types@1.2.1: - resolution: {integrity: sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==} + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 dev: true - /@rollup/plugin-alias@3.1.9(rollup@2.79.1): - resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} - engines: {node: '>=8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: - rollup: 2.79.1 - slash: 3.0.0 + estraverse: 5.3.0 dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.24.0)(rollup@2.79.1): - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + estraverse: 5.3.0 dev: true - /@rollup/plugin-commonjs@17.1.0(rollup@2.79.1): - resolution: {integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^2.30.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 7.2.3 - is-reference: 1.2.1 - magic-string: 0.25.9 - resolve: 1.22.8 - rollup: 2.79.1 + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} dev: true - /@rollup/plugin-json@4.1.0(rollup@2.79.1): - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + '@types/estree': 1.0.5 dev: true - /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 2.79.1 + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} dev: true - /@rollup/pluginutils@3.1.0(rollup@2.79.1): - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.1 + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 dev: true - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: - '@hapi/hoek': 9.3.0 - - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - /@sinonjs/commons@1.8.6: - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/commons@3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - dependencies: - type-detect: 4.0.8 - - /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - dependencies: - '@sinonjs/commons': 3.0.1 - - /@sinonjs/fake-timers@8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - dependencies: - '@sinonjs/commons': 1.8.6 - dev: true - - /@surma/rollup-plugin-off-main-thread@2.2.3: - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - dependencies: - ejs: 3.1.9 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.10 - dev: true - - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.24.0 - '@types/aria-query': 5.0.4 - aria-query: 5.1.3 - chalk: 4.1.2 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - pretty-format: 27.5.1 - dev: true - - /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@babel/runtime': 7.24.0 - '@testing-library/dom': 9.3.4 - '@types/react-dom': 18.2.19 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - - /@tootallnate/quickjs-emscripten@0.23.0: - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - dev: true - - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: true - - /@types/aria-query@5.0.4: - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - dev: true - - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - dev: true - - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - dependencies: - '@babel/types': 7.24.0 - dev: true - - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - dev: true - - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - dependencies: - '@babel/types': 7.24.0 - dev: true - - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.11.24 - dev: true - - /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - dependencies: - '@types/express-serve-static-core': 4.17.43 - '@types/node': 20.11.24 - dev: true - - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - dependencies: - '@types/eslint': 8.56.5 - '@types/estree': 1.0.5 - dev: true - - /@types/eslint@8.56.5: - resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - dev: true - - /@types/estree@0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: true - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - dependencies: - '@types/node': 20.11.24 - '@types/qs': 6.9.12 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - dev: true - - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.12 - '@types/serve-static': 1.15.5 - dev: true - - /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - dev: true - - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - dev: true - - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - /@types/jest-environment-puppeteer@5.0.6: - resolution: {integrity: sha512-MAi9ey7sIRl0ddWsN3jaQQwC41eBfYghE6TKnJNbEXKxw1X6nF6TBCZA+DbQ+KDOb9e2BjUtiWWMZbgjhlTneg==} - dependencies: - '@jest/types': 27.5.1 - '@types/puppeteer': 5.4.7 - jest-environment-node: 27.5.1 - dev: true - - /@types/jest@29.5.12: - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - dependencies: - '@types/node': 20.11.24 - '@types/tough-cookie': 4.0.5 - parse5: 7.1.2 - dev: true - - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true - - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - dev: true - - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: true - - /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/node@20.11.24: - resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} - dependencies: - undici-types: 5.26.5 - - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: true - - /@types/prop-types@15.7.11: - resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - dev: true - - /@types/puppeteer@5.4.7: - resolution: {integrity: sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/qs@6.9.12: - resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} - dev: true - - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - dev: true - - /@types/react-dom@18.2.19: - resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} - dependencies: - '@types/react': 18.2.61 - dev: true - - /@types/react@18.2.61: - resolution: {integrity: sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==} - dependencies: - '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 - csstype: 3.1.3 - dev: true - - /@types/resolve@1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - dev: true - - /@types/scheduler@0.16.8: - resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - dev: true - - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true - - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.11.24 - dev: true - - /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - dependencies: - '@types/express': 4.17.21 - dev: true - - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.11.24 - dev: true - - /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/stack-utils@2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - dev: true - - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - dependencies: - '@types/node': 20.11.24 - dev: true - - /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - /@types/yargs@15.0.19: - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} - dependencies: - '@types/yargs-parser': 21.0.3 - dev: false - - /@types/yargs@16.0.9: - resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} - dependencies: - '@types/yargs-parser': 21.0.3 - dev: true - - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - dependencies: - '@types/yargs-parser': 21.0.3 - - /@types/yauzl@2.10.3: - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - requiresBuild: true - dependencies: - '@types/node': 20.11.24 - dev: true - optional: true - - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - 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 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@7.1.0: - resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 - dev: true - - /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): - resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - eslint: 8.57.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@7.1.0: - resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 7.1.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - dev: true - - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - dev: true - - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - dev: true - - /@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} - dev: true - - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - dev: true - - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - dev: true - - /@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - dev: true - - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - dependencies: - '@xtuc/ieee754': 1.2.0 - dev: true - - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - dependencies: - '@xtuc/long': 4.2.2 - dev: true - - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - dev: true - - /@webassemblyjs/wasm-edit@1.11.6: - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-opt': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - '@webassemblyjs/wast-printer': 1.11.6 - dev: true - - /@webassemblyjs/wasm-gen@1.11.6: - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - dev: true - - /@webassemblyjs/wasm-opt@1.11.6: - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - dev: true - - /@webassemblyjs/wasm-parser@1.11.6: - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - dev: true - - /@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} - dependencies: - '@webassemblyjs/ast': 1.11.6 - '@xtuc/long': 4.2.2 - dev: true - - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.3): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - dev: true - - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.3): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - dev: true - - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.2)(webpack@5.90.3): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true - dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - webpack-dev-server: 5.0.2(webpack-cli@5.1.4)(webpack@5.90.3) - dev: true - - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - dev: true - - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - dev: true - - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - dev: 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: false - - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - dependencies: - acorn: 8.11.3 - acorn-walk: 8.3.2 - dev: true - - /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - dependencies: - acorn: 8.11.3 - dev: true - - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - dev: true - - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - 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 - - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: true - - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - dependencies: - ajv: 6.12.6 - dev: true - - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - dependencies: - ajv: 8.12.0 - fast-deep-equal: 3.1.3 - dev: true - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /anser@1.4.10: - resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} - dev: false - - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-fragments@0.2.1: - resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} - dependencies: - colorette: 1.4.0 - slice-ansi: 2.1.0 - strip-ansi: 5.2.0 - dev: false - - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: true - - /ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - dev: true - - /ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - dev: false - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - dev: true - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - /appdirsjs@1.2.7: - resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} - dev: false - - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - - /argparse@2.0.1: - 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: - dequal: 2.0.3 - dev: true - - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - dev: true - - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: true - - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - dev: true - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array.prototype.filter@1.0.3: - resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 - dev: true - - /array.prototype.findlastindex@1.2.4: - resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - dev: true - - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - dev: true - - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false - - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true - - /ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - dev: true - - /ast-types@0.15.2: - resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - dev: false - - /astral-regex@1.0.0: - resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} - engines: {node: '>=4'} - dev: false - - /async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - dev: false - - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - dev: true - - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true - - /asyncro@3.0.0: - resolution: {integrity: sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==} - dev: true - - /autoprefixer@10.4.18(postcss@8.4.35): - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 - dev: true - - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 - dev: true - - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} - dev: true - - /axios@1.6.7(debug@4.3.4): - resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} - dependencies: - follow-redirects: 1.15.5(debug@4.3.4) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: true - - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 - dev: true - - /b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - dev: true - - /babel-core@7.0.0-bridge.0(@babel/core@7.24.0): - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - dev: false - - /babel-jest@29.7.0(@babel/core@7.24.0): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.24.0 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.0) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.24.0 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.5 - dev: true - - /babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - dependencies: - '@babel/runtime': 7.24.0 - cosmiconfig: 7.1.0 - resolve: 1.22.8 - dev: true - - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.24.0): - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) - core-js-compat: 3.36.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) - transitivePeerDependencies: - - supports-color - - /babel-plugin-transform-async-to-promises@0.8.18: - resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==} - dev: true - - /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.0): - resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} - dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) - transitivePeerDependencies: - - '@babel/core' - dev: false - - /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.24.0): - resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - dev: true - - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.24.0): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) - dev: true - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} - requiresBuild: true - dev: true - optional: true - - /bare-fs@2.2.1: - resolution: {integrity: sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==} - requiresBuild: true - dependencies: - bare-events: 2.2.1 - 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==} - requiresBuild: true - dev: true - optional: true - - /bare-path@2.1.0: - resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} - requiresBuild: true - dependencies: - bare-os: 2.2.0 - dev: true - optional: true - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - /basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} - dev: true - - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - dev: true - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - - /bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: true - - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - dev: true - - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - - /brotli-size@4.0.0: - resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} - engines: {node: '>= 10.16.0'} - dependencies: - duplexer: 0.1.1 - dev: true - - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001591 - electron-to-chromium: 1.4.690 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - - /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==} - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - dependencies: - run-applescript: 7.0.0 - dev: true - - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.1 - dev: true - - /caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - dependencies: - callsites: 2.0.0 - dev: false - - /caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - dependencies: - caller-callsite: 2.0.0 - dev: false - - /callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - dev: false - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - dependencies: - pascal-case: 3.1.2 - tslib: 2.6.2 - dev: true - - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - dev: true - - /caniuse-lite@1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} - - /chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /check-more-types@2.24.0: - resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} - engines: {node: '>= 0.8.0'} - dev: true - - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /chrome-launcher@0.15.2: - resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} - engines: {node: '>=12.13.0'} - hasBin: true - dependencies: - '@types/node': 20.11.24 - escape-string-regexp: 4.0.0 - is-wsl: 2.2.0 - lighthouse-logger: 1.4.2 - transitivePeerDependencies: - - supports-color - dev: false - - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - dev: true - - /chromium-bidi@0.5.10(devtools-protocol@0.0.1249869): - resolution: {integrity: sha512-4hsPE1VaLLM/sgNK/SlLbI24Ra7ZOuWAjA3rhw1lVCZ8ZiUgccS6cL5L/iqo4hjRcl5vwgYJ8xTtbXdulA9b6Q==} - peerDependencies: - devtools-protocol: '*' - dependencies: - devtools-protocol: 0.0.1249869 - mitt: 3.0.1 - urlpattern-polyfill: 10.0.0 - dev: true - - /chromium-edge-launcher@1.0.0: - resolution: {integrity: sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==} - dependencies: - '@types/node': 20.11.24 - escape-string-regexp: 4.0.0 - is-wsl: 2.2.0 - lighthouse-logger: 1.4.2 - mkdirp: 1.0.4 - rimraf: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false - - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - /cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true - - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - dependencies: - source-map: 0.6.1 - dev: true - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: false - - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: false - - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: false - - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: false - - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: true - - /colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} - dev: false - - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - 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 - - /command-exists@1.2.9: - resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - dev: false - - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: true - - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - dev: true - - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true - - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: true - - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: false - - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /concat-with-sourcemaps@1.1.0: - resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} - dependencies: - source-map: 0.6.1 - dev: true - - /confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - dev: true - - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - dev: true - - /connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: true - - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: true - - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: true - - /core-js-compat@3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} - dependencies: - browserslist: 4.23.0 - - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - /cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - dev: false - - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.3 - dev: true - - /cosmiconfig@9.0.0(typescript@5.3.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - typescript: 5.3.3 - dev: true - - /create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.24) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /cross-fetch@4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: true - - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /css-declaration-sorter@6.4.1(postcss@8.4.35): - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - dependencies: - postcss: 8.4.35 - dev: true - - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - dev: true - - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - dev: true - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: true - - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /cssnano-preset-default@5.2.14(postcss@8.4.35): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.35) - cssnano-utils: 3.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-calc: 8.2.4(postcss@8.4.35) - postcss-colormin: 5.3.1(postcss@8.4.35) - postcss-convert-values: 5.1.3(postcss@8.4.35) - postcss-discard-comments: 5.1.2(postcss@8.4.35) - postcss-discard-duplicates: 5.1.0(postcss@8.4.35) - postcss-discard-empty: 5.1.1(postcss@8.4.35) - postcss-discard-overridden: 5.1.0(postcss@8.4.35) - postcss-merge-longhand: 5.1.7(postcss@8.4.35) - postcss-merge-rules: 5.1.4(postcss@8.4.35) - postcss-minify-font-values: 5.1.0(postcss@8.4.35) - postcss-minify-gradients: 5.1.1(postcss@8.4.35) - postcss-minify-params: 5.1.4(postcss@8.4.35) - postcss-minify-selectors: 5.2.1(postcss@8.4.35) - postcss-normalize-charset: 5.1.0(postcss@8.4.35) - postcss-normalize-display-values: 5.1.0(postcss@8.4.35) - postcss-normalize-positions: 5.1.1(postcss@8.4.35) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.35) - postcss-normalize-string: 5.1.0(postcss@8.4.35) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.35) - postcss-normalize-unicode: 5.1.1(postcss@8.4.35) - postcss-normalize-url: 5.1.0(postcss@8.4.35) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.35) - postcss-ordered-values: 5.1.3(postcss@8.4.35) - postcss-reduce-initial: 5.1.2(postcss@8.4.35) - postcss-reduce-transforms: 5.1.0(postcss@8.4.35) - postcss-svgo: 5.1.0(postcss@8.4.35) - postcss-unique-selectors: 5.1.1(postcss@8.4.35) - dev: true - - /cssnano-utils@3.1.0(postcss@8.4.35): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - dev: true - - /cssnano@5.1.15(postcss@8.4.35): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.35) - lilconfig: 2.1.0 - postcss: 8.4.35 - yaml: 1.10.2 - dev: true - - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - dependencies: - css-tree: 1.1.3 - dev: true - - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true - - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: true - - /cwd@0.10.0: - resolution: {integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==} - engines: {node: '>=0.8'} - dependencies: - find-pkg: 0.1.2 - fs-exists-sync: 0.1.0 - dev: true - - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true - - /data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} - dev: true - - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - dev: true - - /dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - dev: false - - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true - - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - 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.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - 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@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - dev: true - - /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.0 - dev: true - - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - dependencies: - execa: 5.1.1 - dev: true - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: false - - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: true - - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: true - - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - 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 - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true - - /denodeify@1.2.1: - resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} - dev: false - - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: true - - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - /deprecated-react-native-prop-types@5.0.0: - resolution: {integrity: sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==} - engines: {node: '>=18'} - dependencies: - '@react-native/normalize-colors': 0.73.2 - invariant: 2.2.4 - prop-types: 15.8.1 - dev: false - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true - - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: true - - /devtools-protocol@0.0.1249869: - resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} - dev: true - - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - dependencies: - '@leichtgewicht/ip-codec': 2.0.4 - dev: true - - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dev: true - - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - dependencies: - utila: 0.4.0 - dev: true - - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: true - - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - dependencies: - webidl-conversions: 7.0.0 - dev: true - - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dev: true - - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - dev: true - - /duplexer@0.1.1: - resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} - dev: true - - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.8.7 - dev: true - - /electron-to-chromium@1.4.690: - resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} - - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - - /enhanced-resolve@5.15.1: - resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - dev: true - - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true - - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true - - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true - - /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - dependencies: - stackframe: 1.3.4 - dev: false - - /errorhandler@1.5.1: - resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} - engines: {node: '>= 0.8'} - dependencies: - accepts: 1.3.8 - escape-html: 1.0.3 - dev: false - - /es-abstract@1.22.5: - resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.1 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.0 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 - dev: true - - /es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - dev: true - - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - dev: true - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - 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-iterator-helpers@1.0.17: - resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==} - engines: {node: '>= 0.4'} - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.3 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.0 - dev: true - - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - dev: true - - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.1 - dev: true - - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.1 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /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-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) - object.assign: 4.1.5 - object.entries: 1.1.7 - semver: 6.3.1 - dev: true - - /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.57.0): - resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} - engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-react: ^7.28.0 - eslint-plugin-react-hooks: ^4.3.0 - dependencies: - eslint: 8.57.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) - eslint-plugin-react: 7.33.2(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) - object.assign: 4.1.5 - object.entries: 1.1.7 - dev: true - - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.4 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.1 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.2 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.24.0 - aria-query: 5.3.0 - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.17 - eslint: 8.57.0 - hasown: 2.0.1 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - dev: true - - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.57.0 - dev: true - - /eslint-plugin-react@7.33.2(eslint@8.57.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.3 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.17 - eslint: 8.57.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.10 - dev: true - - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint@8.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.57.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - dev: true - - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: true - - /estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: true - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - /event-stream@3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.1.0 - pause-stream: 0.0.11 - split: 0.3.3 - stream-combiner: 0.0.4 - through: 2.3.8 - dev: true - - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: false - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: true - - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: true - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true - - /expand-tilde@1.2.2: - resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==} - engines: {node: '>=0.10.0'} - dependencies: - os-homedir: 1.0.2 - dev: true - - /expect-puppeteer@10.0.0: - resolution: {integrity: sha512-E7sE6nVdEbrnpDOBMmcLgyqLJKt876AlBg1A+gsu5R8cWx+SLafreOgJAgzXg5Qko7Tk0cW5oZdRbHQLU738dg==} - engines: {node: '>=16'} - dev: true - - /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - dev: true - - /express@4.18.3: - resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - 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@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.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fast-xml-parser@4.3.5: - resolution: {integrity: sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - dev: true - - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - dependencies: - reusify: 1.0.4 - dev: true - - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - dependencies: - websocket-driver: 0.7.4 - dev: true - - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - - /fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - dependencies: - pend: 1.2.0 - dev: true - - /figures@1.7.0: - resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - object-assign: 4.1.1 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - dev: true - - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - dependencies: - minimatch: 5.1.6 - dev: true - - /filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - - /finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - dev: false - - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - - /find-file-up@0.1.3: - resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} - engines: {node: '>=0.10.0'} - dependencies: - fs-exists-sync: 0.1.0 - resolve-dir: 0.1.1 - dev: true - - /find-pkg@0.1.2: - resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==} - engines: {node: '>=0.10.0'} - dependencies: - find-file-up: 0.1.3 - dev: true - - /find-process@1.4.7: - resolution: {integrity: sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==} - hasBin: true - dependencies: - chalk: 4.1.2 - commander: 5.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - dependencies: - locate-path: 3.0.0 - dev: false - - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true - - /flow-enums-runtime@0.0.6: - resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - dev: false - - /flow-parser@0.206.0: - resolution: {integrity: sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==} - engines: {node: '>=0.4.0'} - dev: false - - /follow-redirects@1.15.5(debug@4.3.4): - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.4 - dev: true - - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - 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 - - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: true - - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: true - - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - /from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - dev: true - - /fs-exists-sync@0.1.0: - resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} - engines: {node: '>=0.10.0'} - dev: true - - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - 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@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /generic-names@4.0.0: - resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} - dependencies: - loader-utils: 3.2.1 - dev: true - - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.1 - dev: true - - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - dev: true - - /get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} - engines: {node: '>= 14'} - dependencies: - basic-ftp: 5.0.5 - 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'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - 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: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /global-modules@0.2.3: - resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 0.1.5 - is-windows: 0.2.0 - dev: true - - /global-prefix@0.1.5: - resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 0.2.0 - which: 1.3.1 - dev: true - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /gzip-size@3.0.0: - resolution: {integrity: sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==} - engines: {node: '>=0.12.0'} - dependencies: - duplexer: 0.1.2 - dev: true - - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - dependencies: - duplexer: 0.1.2 - dev: true - - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - dev: true - - /has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: true - - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.0 - dev: true - - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - dev: true - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /hermes-estree@0.15.0: - resolution: {integrity: sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==} - dev: false - - /hermes-estree@0.19.1: - resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} - dev: false - - /hermes-parser@0.15.0: - resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} - dependencies: - hermes-estree: 0.15.0 - dev: false - - /hermes-parser@0.19.1: - resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} - dependencies: - hermes-estree: 0.19.1 - dev: false - - /hermes-profile-transformer@0.0.6: - resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} - engines: {node: '>=8'} - dependencies: - source-map: 0.7.4 - dev: false - - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: true - - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - dev: true - - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - dependencies: - whatwg-encoding: 2.0.0 - dev: true - - /html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} - dev: true - - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.28.1 - dev: true - - /html-webpack-plugin@5.6.0(webpack@5.90.3): - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - webpack: 5.90.3(webpack-cli@5.1.4) - dev: true - - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - dev: true - - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - dev: true - - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - dev: true - - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true - - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - 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 - - /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - dependencies: - '@types/express': 4.17.21 - '@types/http-proxy': 1.17.14 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.5 - transitivePeerDependencies: - - debug - dev: true - - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.5(debug@4.3.4) - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - dev: true - - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - 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-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - 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 - - /icss-replace-symbols@1.1.0: - resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} - dev: true - - /icss-utils@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.35 - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - dev: true - - /image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - dependencies: - queue: 6.0.2 - dev: false - - /immer@10.0.3: - resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} - dev: true - - /import-cwd@3.0.0: - resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} - engines: {node: '>=8'} - dependencies: - import-from: 3.0.0 - dev: true - - /import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - dev: false - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-from@3.0.0: - resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - hasown: 2.0.1 - side-channel: 1.0.6 - dev: true - - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - dev: true - - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /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 - - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: true - - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - 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'} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - dev: true - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: true - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.1 - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - dev: false - - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - dependencies: - call-bind: 1.0.7 - dev: true - - /is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - dev: false - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - 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'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: false - - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true - - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true - - /is-network-error@1.0.1: - resolution: {integrity: sha512-OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ==} - engines: {node: '>=16'} - dev: true - - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - dev: true - - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: true - - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - dev: true - - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.14 - dev: true - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: false - - /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.7 - 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@0.2.0: - resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} - engines: {node: '>=0.10.0'} - dev: true - - /is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - dev: false - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - dependencies: - is-inside-container: 1.0.0 - dev: true - - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - dev: true - - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.5 - set-function-name: 2.0.2 - 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 - - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: true - - /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - dev: true - - /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.1 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.0.4 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0 - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.11.24) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest-config@29.7.0(@types/node@20.11.24): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.24.0 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - babel-jest: 29.7.0(@babel/core@7.24.0) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-dev-server@10.0.0: - resolution: {integrity: sha512-FtyBBDxrAIfTX3hyKSOwj5KU6Z7fFLew5pQYOFpwyf+qpPpULL8aYxtsFkbkAwcs+Mb7qhcNbVLeiWsLOd7CKw==} - engines: {node: '>=16'} - dependencies: - chalk: 4.1.2 - cwd: 0.10.0 - find-process: 1.4.7 - prompts: 2.4.2 - spawnd: 10.0.0 - tree-kill: 1.2.2 - wait-on: 7.2.0(debug@4.3.4) - transitivePeerDependencies: - - debug - - supports-color - dev: true - - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 20.11.24 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node@27.5.1: - resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.11.24 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - /jest-environment-puppeteer@10.0.1(typescript@5.3.3): - resolution: {integrity: sha512-FxMzVRyqieQqSy5CPWiwdK5t9dkRHid5eoRTVa8RtYeXLlpW6lU0dAmxEfPkdnDVCiPUhC2APeKOXq0J72bgag==} - engines: {node: '>=16'} - dependencies: - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.3) - deepmerge: 4.3.1 - jest-dev-server: 10.0.0 - jest-environment-node: 29.7.0 - transitivePeerDependencies: - - debug - - supports-color - - typescript - dev: true - - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.24 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-message-util@27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.23.5 - '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true - - /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.23.5 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - /jest-mock@27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 20.11.24 - dev: true - - /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - jest-util: 29.7.0 - - /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 29.7.0 - dev: true - - /jest-puppeteer@10.0.1(puppeteer@22.3.0)(typescript@5.3.3): - resolution: {integrity: sha512-FzC35XbqeuQEt1smXh1EOqhJaRkWqJkyWDMfGkcZ8C59QHXeJ7F/iOmiNqYi6l/OsycUuOPCk+IkjfGfS9YbrQ==} - engines: {node: '>=16'} - peerDependencies: - puppeteer: '>=19' - dependencies: - expect-puppeteer: 10.0.0 - jest-environment-puppeteer: 10.0.1(typescript@5.3.3) - puppeteer: 22.3.0(typescript@5.3.3) - transitivePeerDependencies: - - debug - - supports-color - - typescript - dev: true - - /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 - dev: true - - /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - chalk: 4.1.2 - cjs-module-lexer: 1.2.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) - '@babel/types': 7.24.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util@27.5.1: - resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 20.11.24 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - dev: true - - /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.11.24 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - dev: true - - /jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.11.24 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.11.24 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 20.11.24 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - /jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - dev: true - - /jsc-android@250231.0.0: - resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} - dev: false - - /jsc-safe-url@0.2.4: - resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} - dev: false - - /jscodeshift@0.14.0(@babel/preset-env@7.24.0): - resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - '@babel/preset-flow': 7.24.0(@babel/core@7.24.0) - '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0) - '@babel/register': 7.23.7(@babel/core@7.24.0) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.0) - chalk: 4.1.2 - flow-parser: 0.206.0 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.21.5 - temp: 0.8.4 - write-file-atomic: 2.4.3 - transitivePeerDependencies: - - supports-color - dev: false - - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.11.3 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.4.3 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 - parse5: 7.1.2 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.16.0 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.1.7 - dev: true - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: true - - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true - - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - dependencies: - language-subtag-registry: 0.3.22 - dev: true - - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} - dependencies: - picocolors: 1.0.0 - shell-quote: 1.8.1 - dev: true - - /lazy-ass@1.6.0: - resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} - engines: {node: '> 0.8'} - dev: true - - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lighthouse-logger@1.4.2: - resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - dependencies: - debug: 2.6.9 - marky: 1.2.5 - transitivePeerDependencies: - - supports-color - dev: false - - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - dev: true - - /loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} - engines: {node: '>= 12.13.0'} - dev: true - - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - dev: false - - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: true - - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: false - - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: false - - /logkitty@0.7.1: - resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} - hasBin: true - dependencies: - ansi-fragments: 0.2.1 - dayjs: 1.11.10 - yargs: 15.4.1 - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.6.2 - dev: true - - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - dev: true - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /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.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - - /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - dependencies: - pify: 4.0.1 - semver: 5.7.2 - dev: false - - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.1 - dev: true - - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - dependencies: - semver: 7.6.0 - dev: true - - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - - /map-stream@0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} - dev: true - - /marky@1.2.5: - resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - dev: false - - /maxmin@2.1.0: - resolution: {integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==} - engines: {node: '>=0.12'} - dependencies: - chalk: 1.1.3 - figures: 1.7.0 - gzip-size: 3.0.0 - pretty-bytes: 3.0.1 - dev: true - - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: true - - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: true - - /memfs@4.7.7: - resolution: {integrity: sha512-x9qc6k88J/VVwnfTkJV8pRRswJ2156Rc4w5rciRqKceFDZ0y1MqsNL9pkg5sE0GOcDzZYbonreALhaHzg1siFw==} - engines: {node: '>= 4.0.0'} - dependencies: - tslib: 2.6.2 - dev: true - - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false - - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: true - - /metro-babel-transformer@0.80.6: - resolution: {integrity: sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==} - engines: {node: '>=18'} - dependencies: - '@babel/core': 7.24.0 - hermes-parser: 0.19.1 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /metro-cache-key@0.80.6: - resolution: {integrity: sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==} - engines: {node: '>=18'} - dev: false - - /metro-cache@0.80.6: - resolution: {integrity: sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==} - engines: {node: '>=18'} - dependencies: - metro-core: 0.80.6 - rimraf: 3.0.2 - dev: false - - /metro-config@0.80.6: - resolution: {integrity: sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==} - engines: {node: '>=18'} - dependencies: - connect: 3.7.0 - cosmiconfig: 5.2.1 - jest-validate: 29.7.0 - metro: 0.80.6 - metro-cache: 0.80.6 - metro-core: 0.80.6 - metro-runtime: 0.80.6 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /metro-core@0.80.6: - resolution: {integrity: sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==} - engines: {node: '>=18'} - dependencies: - lodash.throttle: 4.1.1 - metro-resolver: 0.80.6 - dev: false - - /metro-file-map@0.80.6: - resolution: {integrity: sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==} - engines: {node: '>=18'} - dependencies: - anymatch: 3.1.3 - debug: 2.6.9 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - invariant: 2.2.4 - jest-worker: 29.7.0 - micromatch: 4.0.5 - node-abort-controller: 3.1.1 - nullthrows: 1.1.1 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /metro-minify-terser@0.80.6: - resolution: {integrity: sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==} - engines: {node: '>=18'} - dependencies: - terser: 5.28.1 - dev: false - - /metro-resolver@0.80.6: - resolution: {integrity: sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==} - engines: {node: '>=18'} - dev: false - - /metro-runtime@0.80.6: - resolution: {integrity: sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==} - engines: {node: '>=18'} - dependencies: - '@babel/runtime': 7.24.0 - dev: false - - /metro-source-map@0.80.6: - resolution: {integrity: sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==} - engines: {node: '>=18'} - dependencies: - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - invariant: 2.2.4 - metro-symbolicate: 0.80.6 - nullthrows: 1.1.1 - ob1: 0.80.6 - source-map: 0.5.7 - vlq: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /metro-symbolicate@0.80.6: - resolution: {integrity: sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==} - engines: {node: '>=18'} - hasBin: true - dependencies: - invariant: 2.2.4 - metro-source-map: 0.80.6 - nullthrows: 1.1.1 - source-map: 0.5.7 - through2: 2.0.5 - vlq: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /metro-transform-plugins@0.80.6: - resolution: {integrity: sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==} - engines: {node: '>=18'} - dependencies: - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /metro-transform-worker@0.80.6: - resolution: {integrity: sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==} - engines: {node: '>=18'} - dependencies: - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - metro: 0.80.6 - metro-babel-transformer: 0.80.6 - metro-cache: 0.80.6 - metro-cache-key: 0.80.6 - metro-minify-terser: 0.80.6 - metro-source-map: 0.80.6 - metro-transform-plugins: 0.80.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /metro@0.80.6: - resolution: {integrity: sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==} - engines: {node: '>=18'} - hasBin: true - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - accepts: 1.3.8 - chalk: 4.1.2 - ci-info: 2.0.0 - connect: 3.7.0 - debug: 2.6.9 - denodeify: 1.2.1 - error-stack-parser: 2.1.4 - graceful-fs: 4.2.11 - hermes-parser: 0.19.1 - image-size: 1.1.1 - invariant: 2.2.4 - jest-worker: 29.7.0 - jsc-safe-url: 0.2.4 - lodash.throttle: 4.1.1 - metro-babel-transformer: 0.80.6 - metro-cache: 0.80.6 - metro-cache-key: 0.80.6 - metro-config: 0.80.6 - metro-core: 0.80.6 - metro-file-map: 0.80.6 - metro-resolver: 0.80.6 - metro-runtime: 0.80.6 - metro-source-map: 0.80.6 - metro-symbolicate: 0.80.6 - metro-transform-plugins: 0.80.6 - metro-transform-worker: 0.80.6 - mime-types: 2.1.35 - node-fetch: 2.7.0 - nullthrows: 1.1.1 - rimraf: 3.0.2 - serialize-error: 2.1.0 - source-map: 0.5.7 - strip-ansi: 6.0.1 - throat: 5.0.0 - ws: 7.5.9 - yargs: 17.7.2 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /microbundle@0.15.1: - resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==} - hasBin: true - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0) - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - '@babel/preset-flow': 7.24.0(@babel/core@7.24.0) - '@babel/preset-react': 7.23.3(@babel/core@7.24.0) - '@rollup/plugin-alias': 3.1.9(rollup@2.79.1) - '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.0)(rollup@2.79.1) - '@rollup/plugin-commonjs': 17.1.0(rollup@2.79.1) - '@rollup/plugin-json': 4.1.0(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) - '@surma/rollup-plugin-off-main-thread': 2.2.3 - asyncro: 3.0.0 - autoprefixer: 10.4.18(postcss@8.4.35) - babel-plugin-macros: 3.1.0 - babel-plugin-transform-async-to-promises: 0.8.18 - babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.24.0) - brotli-size: 4.0.0 - builtin-modules: 3.3.0 - camelcase: 6.3.0 - escape-string-regexp: 4.0.0 - filesize: 6.4.0 - gzip-size: 6.0.0 - kleur: 4.1.5 - lodash.merge: 4.6.2 - postcss: 8.4.35 - pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-bundle-size: 1.0.3 - rollup-plugin-postcss: 4.0.2(postcss@8.4.35) - rollup-plugin-terser: 7.0.2(rollup@2.79.1) - rollup-plugin-typescript2: 0.32.1(rollup@2.79.1)(typescript@4.9.5) - rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) - sade: 1.8.1 - terser: 5.28.1 - tiny-glob: 0.2.9 - tslib: 2.6.2 - typescript: 4.9.5 - transitivePeerDependencies: - - '@types/babel__core' - - supports-color - - ts-node + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - /mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: false - - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: - brace-expansion: 1.1.11 + reusify: 1.0.4 + dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - brace-expansion: 2.0.1 + flat-cache: 3.2.0 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: - brace-expansion: 2.0.1 + to-regex-range: 5.0.1 dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 dev: true - /mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: - minimist: 1.2.8 - dev: false - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + is-callable: 1.2.7 dev: true - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 dev: true - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true - /netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} dev: true - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 dev: true - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 + resolve-pkg-maps: 1.0.0 dev: true - /nocache@3.0.4: - resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} - engines: {node: '>=12.0.0'} - dev: false + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true - /node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - dev: false + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true - /node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 minimatch: 3.1.2 - dev: false + once: 1.4.0 + path-is-absolute: 1.0.1 + 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 + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: - whatwg-url: 5.0.0 - - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + type-fest: 0.20.2 dev: true - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - /node-stream-zip@1.15.0: - resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} - engines: {node: '>=0.12.0'} - dev: false + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true + /happy-dom@14.7.1: + resolution: {integrity: sha512-v60Q0evZ4clvMcrAh5/F8EdxDdfHdFrtffz/CNe10jKD+nFweZVxM91tW+UyY2L4AtpgIaXdZ7TQmiO1pfcwbg==} + engines: {node: '>=16.0.0'} dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.1 - string.prototype.padend: 3.1.5 + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 + dev: true - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - boolbase: 1.0.0 + es-define-property: 1.0.0 dev: true - /nullthrows@1.1.1: - resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - dev: false + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true - /number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} dev: true - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 dev: true - /ob1@0.80.6: - resolution: {integrity: sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==} - engines: {node: '>=18'} - dev: false + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} dev: true - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + parent-module: 1.0.1 + resolve-from: 4.0.0 dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} dev: true - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 + get-intrinsic: 1.2.4 dev: true - /object.groupby@1.0.2: - resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} dependencies: - array.prototype.filter: 1.0.3 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - es-errors: 1.3.0 + has-tostringtag: 1.0.2 dev: true - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.5 + has-bigints: 1.0.2 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 + has-tostringtag: 1.0.2 dev: true - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} dev: true - /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: false - - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - - /open@10.0.4: - resolution: {integrity: sha512-oujJ/FFr7ra6/7gJuQ4ZJJ8Gf2VHM0J3J/W7IvH++zaqEzacWVxzK++NiVY5NLHTTj7u/jNH5H3Ei9biL31Lng==} - engines: {node: '>=18'} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - default-browser: 5.2.1 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 3.1.0 + hasown: 2.0.2 dev: true - /open@6.4.0: - resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} - engines: {node: '>=8'} + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: - is-wsl: 1.1.0 - dev: false + is-typed-array: 1.1.13 + dev: true - /open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false + has-tostringtag: 1.0.2 + dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} dev: true - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 + call-bind: 1.0.7 dev: true - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: false + has-tostringtag: 1.0.2 + dev: true - /os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - dependencies: - p-limit: 2.3.0 - dev: false + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: - p-limit: 2.3.0 + has-tostringtag: 1.0.2 + dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 dev: true - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: - '@types/retry': 0.12.2 - is-network-error: 1.0.1 - retry: 0.13.1 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - dependencies: - p-finally: 1.0.0 + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} dev: true - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - /pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} - engines: {node: '>= 14'} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} 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 + call-bind: 1.0.7 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 + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 + has-tostringtag: 1.0.2 dev: true - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: - callsites: 3.1.0 + has-symbols: 1.0.3 dev: true - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: - '@babel/code-frame': 7.23.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 + which-typed-array: 1.1.15 dev: true - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} dev: true - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - entities: 4.5.0 + call-bind: 1.0.7 dev: true - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: - no-case: 3.0.4 - tslib: 2.6.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 dev: true - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: true - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} dev: true - /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: - pify: 3.0.0 + argparse: 2.0.1 dev: true - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - dependencies: - through: 2.3.8 + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + dependencies: + minimist: 1.2.8 dev: true - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: false - - /pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 dev: true - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - /pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: - find-up: 3.0.0 - dev: false + json-buffer: 3.0.1 + dev: true - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.22 dev: true - /postcss-calc@8.2.4(postcss@8.4.35): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - postcss-value-parser: 4.2.0 + prelude-ls: 1.2.1 + type-check: 0.4.0 dev: true - /postcss-colormin@5.3.1(postcss@8.4.35): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} dependencies: - browserslist: 4.23.0 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + mlly: 1.6.1 + pkg-types: 1.1.0 dev: true - /postcss-convert-values@5.1.3(postcss@8.4.35): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: - browserslist: 4.23.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + p-locate: 5.0.0 dev: true - /postcss-discard-comments@5.1.2(postcss@8.4.35): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: - postcss: 8.4.35 - dev: true + js-tokens: 4.0.0 - /postcss-discard-overridden@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - postcss: 8.4.35 + get-func-name: 2.0.2 dev: true - /postcss-load-config@3.1.4(postcss@8.4.35): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: - lilconfig: 2.1.0 - postcss: 8.4.35 - yaml: 1.10.2 + yallist: 4.0.0 dev: true - /postcss-merge-longhand@5.1.7(postcss@8.4.35): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.35) + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true dev: true - /postcss-merge-rules@5.1.4(postcss@8.4.35): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: - browserslist: 4.23.0 - caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} dev: true - /postcss-minify-params@5.1.4(postcss@8.4.35): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: - browserslist: 4.23.0 - cssnano-utils: 3.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + braces: 3.0.2 + picomatch: 2.3.1 dev: true - /postcss-minify-selectors@5.2.1(postcss@8.4.35): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.35 + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} dev: true - /postcss-modules-local-by-default@4.0.4(postcss@8.4.35): - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - postcss-value-parser: 4.2.0 + brace-expansion: 1.1.11 dev: true - /postcss-modules-scope@3.1.1(postcss@8.4.35): - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + brace-expansion: 2.0.1 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.35): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /postcss-modules@4.3.1(postcss@8.4.35): - resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} - peerDependencies: - postcss: ^8.0.0 - dependencies: - generic-names: 4.0.0 - icss-replace-symbols: 1.1.0 - lodash.camelcase: 4.3.0 - postcss: 8.4.35 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) - postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) - postcss-modules-scope: 3.1.1(postcss@8.4.35) - postcss-modules-values: 4.0.0(postcss@8.4.35) - string-hash: 1.1.3 - dev: true - - /postcss-normalize-charset@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: - postcss: 8.4.35 + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.0 + ufo: 1.5.3 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /postcss-normalize-positions@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + path-key: 4.0.0 dev: true - /postcss-normalize-unicode@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.23.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - normalize-url: 6.1.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} dev: true - /postcss-ordered-values@5.1.3(postcss@8.4.35): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: - cssnano-utils: 3.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 dev: true - /postcss-reduce-initial@5.1.2(postcss@8.4.35): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} dependencies: - browserslist: 4.23.0 - caniuse-api: 3.0.0 - postcss: 8.4.35 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} - engines: {node: '>=4'} + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 dev: true - /postcss-svgo@5.1.0(postcss@8.4.35): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} dependencies: - postcss: 8.4.35 - postcss-value-parser: 4.2.0 - svgo: 2.8.0 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + mimic-fn: 4.0.0 dev: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - dev: true - - /pretty-bytes@3.0.1: - resolution: {integrity: sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==} - engines: {node: '>=0.10.0'} dependencies: - number-is-nan: 1.0.1 - dev: true - - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 dev: true - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 + yocto-queue: 0.1.0 dev: true - /pretty-format@26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: false + yocto-queue: 1.0.0 + dev: true - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 + p-limit: 3.1.0 dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - /progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} + callsites: 3.1.0 dev: true - /promise.series@0.2.0: - resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} - engines: {node: '>=0.12'} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} dev: true - /promise@8.3.0: - resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} - dependencies: - asap: 2.0.6 - dev: false - - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} dev: true - /proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} - 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 + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} dev: true - /proxy-compare@2.6.0: - resolution: {integrity: sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==} - dev: false + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /ps-tree@1.2.0: - resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} - engines: {node: '>= 0.10'} - hasBin: true - dependencies: - event-stream: 3.3.4 + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 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 + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true - /puppeteer-core@22.3.0: - resolution: {integrity: sha512-Ho5Vdpdro05ZyCx/l5Hkc5vHiibKTaY37fIAD9NF9Gi/vDxkVTeX40U/mFnEmeoxyuYALvWCJfi7JTT82R6Tuw==} - engines: {node: '>=18'} - dependencies: - '@puppeteer/browsers': 2.1.0 - chromium-bidi: 0.5.10(devtools-protocol@0.0.1249869) - cross-fetch: 4.0.0 - debug: 4.3.4 - devtools-protocol: 0.0.1249869 - ws: 8.16.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} dev: true - /puppeteer@22.3.0(typescript@5.3.3): - resolution: {integrity: sha512-GC+tyjzYKjaNjhlDAuqRgDM+IOsqOG75Da4L28G4eULNLLxKDt+79x2OOSQ47HheJBgGq7ATSExNE6gayxP6cg==} - engines: {node: '>=18'} - hasBin: true - requiresBuild: true + /pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} dependencies: - '@puppeteer/browsers': 2.1.0 - cosmiconfig: 9.0.0(typescript@5.3.3) - puppeteer-core: 22.3.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - typescript - - utf-8-validate + confbox: 0.1.7 + mlly: 1.6.1 + pathe: 1.1.2 dev: true - /pure-rand@6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} dev: true - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} dependencies: - side-channel: 1.0.6 + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 dev: true - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true dev: true - /queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - requiresBuild: true + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 dev: true - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - inherits: 2.0.4 - dev: false + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + dev: true - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: - safe-buffer: 5.2.1 + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 dev: true - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + /proxy-compare@3.0.0: + resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} + dev: false - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} dev: true - /react-devtools-core@4.28.5: - resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} - dependencies: - shell-quote: 1.8.1 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 + dev: true /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - /react-native@0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0): - resolution: {integrity: sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - react: 18.2.0 - dependencies: - '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 12.3.6 - '@react-native-community/cli-platform-android': 12.3.6 - '@react-native-community/cli-platform-ios': 12.3.6 - '@react-native/assets-registry': 0.73.1 - '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.0) - '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.0)(@babel/preset-env@7.24.0) - '@react-native/gradle-plugin': 0.73.4 - '@react-native/js-polyfills': 0.73.1 - '@react-native/normalize-colors': 0.73.2 - '@react-native/virtualized-lists': 0.73.4(react-native@0.73.5) - abort-controller: 3.0.0 - anser: 1.4.10 - ansi-regex: 5.0.1 - base64-js: 1.5.1 - chalk: 4.1.2 - deprecated-react-native-prop-types: 5.0.0 - event-target-shim: 5.0.1 - flow-enums-runtime: 0.0.6 - invariant: 2.2.4 - jest-environment-node: 29.7.0 - jsc-android: 250231.0.0 - memoize-one: 5.2.1 - metro-runtime: 0.80.6 - metro-source-map: 0.80.6 - mkdirp: 0.5.6 - nullthrows: 1.1.1 - pretty-format: 26.6.2 - promise: 8.3.0 - react: 18.2.0 - react-devtools-core: 4.28.5 - react-refresh: 0.14.0 - react-shallow-renderer: 16.15.0(react@18.2.0) - regenerator-runtime: 0.13.11 - scheduler: 0.24.0-canary-efb381bbf-20230505 - stacktrace-parser: 0.1.10 - whatwg-fetch: 3.6.20 - ws: 6.2.2 - yargs: 17.7.2 - transitivePeerDependencies: - - '@babel/core' - - '@babel/preset-env' - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - dev: false - - /react-shallow-renderer@16.15.0(react@18.2.0): - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - object-assign: 4.1.1 - react: 18.2.0 - react-is: 18.2.0 - dev: false - - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - - /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 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 - - /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 - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} dev: true - /readline@1.3.0: - resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} - dev: false - - /recast@0.21.5: - resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} - engines: {node: '>= 4'} + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} dependencies: - ast-types: 0.15.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.6.2 - dev: false + loose-envify: 1.4.0 - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: - resolve: 1.22.8 + indent-string: 4.0.0 + strip-indent: 3.0.0 dev: true /redux-saga@1.3.0: @@ -9416,39 +2757,22 @@ packages: '@redux-saga/core': 1.3.0 dev: true - /reflect.getprototypeof@1.0.5: - resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 dev: true - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: false - /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.24.0 + dev: true /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} @@ -9460,88 +2784,13 @@ packages: set-function-name: 2.0.2 dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - dev: true - - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - dev: true - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: false - - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true - - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-dir@0.1.1: - resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 1.2.2 - global-modules: 0.2.3 - dev: true - - /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - dev: false - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true /resolve@1.22.8: @@ -9551,6 +2800,7 @@ packages: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} @@ -9561,161 +2811,52 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: false - - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: true - /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: false - /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 - - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true - dependencies: - glob: 10.3.10 - dev: true - - /rollup-plugin-bundle-size@1.0.3: - resolution: {integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==} - dependencies: - chalk: 1.1.3 - maxmin: 2.1.0 - dev: true - - /rollup-plugin-postcss@4.0.2(postcss@8.4.35): - resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} - engines: {node: '>=10'} - peerDependencies: - postcss: 8.x - dependencies: - chalk: 4.1.2 - concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15(postcss@8.4.35) - import-cwd: 3.0.0 - p-queue: 6.6.2 - pify: 5.0.0 - postcss: 8.4.35 - postcss-load-config: 3.1.4(postcss@8.4.35) - postcss-modules: 4.3.1(postcss@8.4.35) - promise.series: 0.2.0 - resolve: 1.22.8 - rollup-pluginutils: 2.8.2 - safe-identifier: 0.4.2 - style-inject: 0.3.0 - transitivePeerDependencies: - - ts-node dev: true - /rollup-plugin-terser@7.0.2(rollup@2.79.1): - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 - dependencies: - '@babel/code-frame': 7.23.5 - jest-worker: 26.6.2 - rollup: 2.79.1 - serialize-javascript: 4.0.0 - terser: 5.28.1 - dev: true - - /rollup-plugin-typescript2@0.32.1(rollup@2.79.1)(typescript@4.9.5): - resolution: {integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==} - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - dependencies: - '@rollup/pluginutils': 4.2.1 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - resolve: 1.22.8 - rollup: 2.79.1 - tslib: 2.6.2 - typescript: 4.9.5 - dev: true - - /rollup-plugin-visualizer@5.12.0(rollup@2.79.1): - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} + /rollup@4.17.1: + resolution: {integrity: sha512-0gG94inrUtg25sB2V/pApwiv1lUb0bQ25FPNuzO89Baa+B+c0ccaaBKM5zkZV/12pUUdH+lWCSm9wmHqyocuVQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - rollup: 2.79.1 - source-map: 0.7.4 - yargs: 17.7.2 - dev: true - - /rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: - estree-walker: 0.6.1 - dev: true - - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true + '@types/estree': 1.0.5 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.17.1 + '@rollup/rollup-android-arm64': 4.17.1 + '@rollup/rollup-darwin-arm64': 4.17.1 + '@rollup/rollup-darwin-x64': 4.17.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.1 + '@rollup/rollup-linux-arm-musleabihf': 4.17.1 + '@rollup/rollup-linux-arm64-gnu': 4.17.1 + '@rollup/rollup-linux-arm64-musl': 4.17.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.1 + '@rollup/rollup-linux-riscv64-gnu': 4.17.1 + '@rollup/rollup-linux-s390x-gnu': 4.17.1 + '@rollup/rollup-linux-x64-gnu': 4.17.1 + '@rollup/rollup-linux-x64-musl': 4.17.1 + '@rollup/rollup-win32-arm64-msvc': 4.17.1 + '@rollup/rollup-win32-ia32-msvc': 4.17.1 + '@rollup/rollup-win32-x64-msvc': 4.17.1 fsevents: 2.3.3 dev: true - /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.2 - dev: true - - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -9724,16 +2865,6 @@ packages: isarray: 2.0.5 dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - /safe-identifier@0.4.2: - resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} - dev: true - /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -9743,143 +2874,26 @@ packages: is-regex: 1.1.4 dev: true - /safer-buffer@2.1.2: - 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 - - /scheduler@0.24.0-canary-efb381bbf-20230505: - resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: true - - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - ajv-keywords: 5.1.0(ajv@8.12.0) - dev: true - - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - dev: true - - /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - dev: true - - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - /serialize-error@2.1.0: - resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} - engines: {node: '>=0.10.0'} - dev: false - - /serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - dependencies: - randombytes: 2.1.0 - dev: true - - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - dependencies: - randombytes: 2.1.0 - dev: true - - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color + loose-envify: 1.4.0 - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -9900,43 +2914,17 @@ packages: has-property-descriptors: 1.0.2 dev: true - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - dev: true - - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - dependencies: - kind-of: 6.0.3 - - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -9948,272 +2936,44 @@ packages: object-inspect: 1.13.1 dev: true - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - - /slice-ansi@2.1.0: - resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} - engines: {node: '>=6'} - dependencies: - ansi-styles: 3.2.1 - astral-regex: 1.0.0 - is-fullwidth-code-point: 2.0.0 - dev: false - - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true - - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - 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==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - 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 - - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - dev: true - - /spawnd@10.0.0: - resolution: {integrity: sha512-6GKcakMTryb5b1SWCvdubCDHEsR2k+5VZUD5G19umZRarkvj1RyCGyizcqhjewI7cqZo8fTVD8HpnDZbVOLMtg==} - engines: {node: '>=16'} - dependencies: - signal-exit: 4.1.0 - tree-kill: 1.2.2 - dev: true - - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 - dev: true - - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: true - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - dev: true - - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - dev: true - - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - dependencies: - debug: 4.3.4 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - dev: true - - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - dependencies: - debug: 4.3.4 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /split@0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} - dependencies: - through: 2.3.8 dev: true - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: true - - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: false - - /stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} - engines: {node: '>=6'} - dependencies: - type-fest: 0.7.1 - dev: false - - /start-server-and-test@2.0.3: - resolution: {integrity: sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==} - engines: {node: '>=16'} - hasBin: true - dependencies: - arg: 5.0.2 - bluebird: 3.7.2 - check-more-types: 2.24.0 - debug: 4.3.4 - execa: 5.1.1 - lazy-ass: 1.6.0 - ps-tree: 1.2.0 - wait-on: 7.2.0(debug@4.3.4) - transitivePeerDependencies: - - supports-color + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.7 - dev: true - - /stream-combiner@0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - dependencies: - duplexer: 0.1.2 - 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.1 - dev: true - - /string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - dev: true - - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /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.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 regexp.prototype.flags: 1.5.2 @@ -10221,75 +2981,38 @@ packages: side-channel: 1.0.6 dev: true - /string.prototype.padend@3.1.5: - resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.5 - dev: true - - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 - dev: true - - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - - /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 + es-object-atoms: 1.0.0 dev: true - /strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - dependencies: - ansi-regex: 4.1.1 - dev: false - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - - /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: @@ -10297,46 +3020,27 @@ packages: engines: {node: '>=4'} dev: true - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} dev: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - - /style-inject@0.3.0: - resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} - dev: true - - /stylehacks@5.1.1(postcss@8.4.35): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: - browserslist: 4.23.0 - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 - dev: true - - /sudo-prompt@9.2.1: - resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} - dev: false - - /supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} + js-tokens: 9.0.0 dev: true /supports-color@5.5.0: @@ -10344,39 +3048,18 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 + dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 - picocolors: 1.0.0 - stable: 0.1.8 - dev: true - - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true /tapable@2.2.1: @@ -10384,208 +3067,42 @@ packages: engines: {node: '>=6'} 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.1 - 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 - - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - dev: false - - /temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} - dependencies: - rimraf: 2.6.3 - dev: false - - /terser-webpack-plugin@5.3.10(webpack@5.90.3): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': 0.3.24 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.28.1 - webpack: 5.90.3(webpack-cli@5.1.4) - dev: true - - /terser@5.28.1: - resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.3 - commander: 2.20.3 - source-map-support: 0.5.21 - - /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - dev: true - /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /throat@5.0.0: - resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} - dev: false - - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - dev: false - - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} dev: true - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} dev: true - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} dev: true - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - /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==} - - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.3.1 - dev: true - - /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 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 - - /ts-jest@29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.3.3): - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.24.0 - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0 - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.0 - typescript: 5.3.3 - yargs-parser: 21.1.1 + typescript: 5.4.5 dev: true - /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.90.3): - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.15.1 - micromatch: 4.0.5 - semver: 7.6.0 - source-map: 0.7.4 - typescript: 5.3.3 - webpack: 5.90.3(webpack-cli@5.1.4) + /ts-expect@1.3.0: + resolution: {integrity: sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==} dev: true /tsconfig-paths@3.15.0: @@ -10597,9 +3114,6 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -10610,30 +3124,13 @@ packages: /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + dev: true /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} - dev: false - - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: true - /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -10666,8 +3163,8 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -10694,16 +3191,14 @@ packages: typescript-compare: 0.0.2 dev: true - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} hasBin: true dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} dev: true /unbox-primitive@1.0.2: @@ -10715,414 +3210,168 @@ 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==} - - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false - - /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 - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 - /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 - - /urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - dev: true - - /use-context-selector@1.4.4(react-dom@18.2.0)(react-native@0.73.5)(react@18.2.0)(scheduler@0.23.0): - resolution: {integrity: sha512-pS790zwGxxe59GoBha3QYOwk8AFGp4DN6DOtH+eoqVmgBBRXVx4IlPDhJmmMiNQAgUaLlP+58aqRC3A4rdaSjg==} + /use-context-selector@2.0.0-beta.0(react@18.3.1)(scheduler@0.23.2): + resolution: {integrity: sha512-AODu0x/FzGXTWnVDD/zTSP6JQ3n5LWQm8PKJzrmzX9vQuXuw83Chf1pBYzq9TkCy2Hi1L1b8W02fBBbftKQrIA==} peerDependencies: - react: '>=16.8.0' - react-dom: '*' - react-native: '*' + react: '>=18.0.0' scheduler: '>=0.19.0' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-native: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 dev: false - /use-reducer-async@2.1.1(react@18.2.0): + /use-reducer-async@2.1.1(react@18.3.1): resolution: {integrity: sha512-oPSFzOIEPgMenQkMHzqeRgsQLSpcyGkspAnyTWP4l1tKlt31wMVMz6wWj6g/jea/Ms7lRvBz4AL+Okt83Tntig==} peerDependencies: react: '>=16.8.0' dependencies: - react: 18.2.0 + react: 18.3.1 dev: true - /use-saga-reducer@3.0.0(react@18.2.0)(redux-saga@1.3.0): + /use-saga-reducer@3.0.0(react@18.3.1)(redux-saga@1.3.0): resolution: {integrity: sha512-uVrFbNmV/ZzCsll18oK8MWk8iDrmnGKcHGNfQ+6ARN7AIxnqjIOeEFEMO1X/kRvuFY5QxtlFO1bfVpSUNfTRPQ==} peerDependencies: react: '>=16.9.0' redux-saga: ^1.0.5 dependencies: - react: 18.2.0 + react: 18.3.1 redux-saga: 1.3.0 dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - dev: true - - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: true - - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.24 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: true - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: true - - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - /vlq@1.0.1: - resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - dev: false - - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - dependencies: - xml-name-validator: 4.0.0 - dev: true - - /wait-on@7.2.0(debug@4.3.4): - resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==} - engines: {node: '>=12.0.0'} + /vite-node@1.5.2(@types/node@20.12.7): + resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: - axios: 1.6.7(debug@4.3.4) - joi: 17.12.2 - lodash: 4.17.21 - minimist: 1.2.8 - rxjs: 7.8.1 + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@20.12.7) transitivePeerDependencies: - - debug - dev: true - - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - dev: true - - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - dependencies: - minimalistic-assert: 1.0.1 - dev: true - - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: false - - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser dev: true - /webpack-cli@5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} + /vite@5.2.10(@types/node@20.12.7): + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 peerDependenciesMeta: - '@webpack-cli/generators': + '@types/node': optional: true - webpack-bundle-analyzer: + less: optional: true - webpack-dev-server: + lightningcss: optional: true - dependencies: - '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.3) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.3) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.2)(webpack@5.90.3) - colorette: 2.0.20 - commander: 10.0.1 - cross-spawn: 7.0.3 - envinfo: 7.11.1 - fastest-levenshtein: 1.0.16 - import-local: 3.1.0 - interpret: 3.1.1 - rechoir: 0.8.0 - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-dev-server: 5.0.2(webpack-cli@5.1.4)(webpack@5.90.3) - webpack-merge: 5.10.0 - dev: true - - /webpack-dev-middleware@7.0.0(webpack@5.90.3): - resolution: {integrity: sha512-tZ5hqsWwww/8DislmrzXE3x+4f+v10H1z57mA2dWFrILb4i3xX+dPhTkcdR0DLyQztrhF2AUmO5nN085UYjd/Q==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: + sass: optional: true - dependencies: - colorette: 2.0.20 - memfs: 4.7.7 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.2.0 - webpack: 5.90.3(webpack-cli@5.1.4) - dev: true - - /webpack-dev-server@5.0.2(webpack-cli@5.1.4)(webpack@5.90.3): - resolution: {integrity: sha512-IVj3qsQhiLJR82zVg3QdPtngMD05CYP/Am+9NG5QSl+XwUR/UPtFwllRBKrMwM9ttzFsC6Zj3DMgniPyn/Z0hQ==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: + stylus: optional: true - webpack-cli: + sugarss: + optional: true + terser: optional: true dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.5 - '@types/sockjs': 0.3.36 - '@types/ws': 8.5.10 - ansi-html-community: 0.0.8 - bonjour-service: 1.2.1 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.7.4 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.18.3 - graceful-fs: 4.2.11 - html-entities: 2.4.0 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) - ipaddr.js: 2.1.0 - launch-editor: 2.6.1 - open: 10.0.4 - p-retry: 6.2.0 - rimraf: 5.0.5 - schema-utils: 4.2.0 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - webpack-dev-middleware: 7.0.0(webpack@5.90.3) - ws: 8.16.0 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - dev: true - - /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - dev: true - - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + '@types/node': 20.12.7 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.17.1 + optionalDependencies: + fsevents: 2.3.3 dev: true - /webpack@5.90.3(webpack-cli@5.1.4): - resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} - engines: {node: '>=10.13.0'} + /vitest@1.5.2(@types/node@20.12.7)(happy-dom@14.7.1): + resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - webpack-cli: '*' + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.2 + '@vitest/ui': 1.5.2 + happy-dom: '*' + jsdom: '*' peerDependenciesMeta: - webpack-cli: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: optional: true dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.1 - es-module-lexer: 1.4.1 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.3) - watchpack: 2.4.0 - webpack-cli: 5.1.4(webpack-dev-server@5.0.2)(webpack@5.90.3) - webpack-sources: 3.2.3 + '@types/node': 20.12.7 + '@vitest/expect': 1.5.2 + '@vitest/runner': 1.5.2 + '@vitest/snapshot': 1.5.2 + '@vitest/spy': 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 + happy-dom: 14.7.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.2(@types/node@20.12.7) + why-is-node-running: 2.2.2 transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: true - - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - dev: true - - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser dev: true - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - dependencies: - iconv-lite: 0.6.3 dev: true - /whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - dev: false - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} dev: true - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.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 - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -11147,25 +3396,22 @@ packages: is-weakref: 1.0.2 isarray: 2.0.5 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.14 + which-collection: 1.0.2 + which-typed-array: 1.1.15 dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 dev: true - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: false - - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -11175,196 +3421,42 @@ packages: has-tostringtag: 1.0.2 dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 - - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} dev: true - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} + hasBin: true dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + siginfo: 2.0.0 + stackback: 0.0.2 + 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 + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - dependencies: - graceful-fs: 4.2.11 - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - dev: false - - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - dev: true - - /ws@6.2.2: - resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dependencies: - async-limiter: 1.0.1 - dev: false - - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /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@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true - - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false - - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yaml@2.4.0: - resolution: {integrity: sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==} - engines: {node: '>= 14'} - hasBin: true - dev: false - - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: false - - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: false - - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - 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 - - /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'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/__tests__/01_basic_spec.tsx b/tests/01_basic.spec.tsx similarity index 100% rename from __tests__/01_basic_spec.tsx rename to tests/01_basic.spec.tsx diff --git a/__tests__/__snapshots__/01_basic_spec.tsx.snap b/tests/__snapshots__/01_basic_spec.tsx.snap similarity index 100% rename from __tests__/__snapshots__/01_basic_spec.tsx.snap rename to tests/__snapshots__/01_basic_spec.tsx.snap diff --git a/__tests__/e2e/01_minimal.ts b/tests/e2e/01_minimal.ts similarity index 100% rename from __tests__/e2e/01_minimal.ts rename to tests/e2e/01_minimal.ts diff --git a/__tests__/e2e/02_typescript.ts b/tests/e2e/02_typescript.ts similarity index 100% rename from __tests__/e2e/02_typescript.ts rename to tests/e2e/02_typescript.ts diff --git a/__tests__/e2e/03_usestate.ts b/tests/e2e/03_usestate.ts similarity index 100% rename from __tests__/e2e/03_usestate.ts rename to tests/e2e/03_usestate.ts diff --git a/__tests__/e2e/04_selector.ts b/tests/e2e/04_selector.ts similarity index 100% rename from __tests__/e2e/04_selector.ts rename to tests/e2e/04_selector.ts diff --git a/__tests__/e2e/05_container.ts b/tests/e2e/05_container.ts similarity index 100% rename from __tests__/e2e/05_container.ts rename to tests/e2e/05_container.ts diff --git a/__tests__/e2e/06_customhook.ts b/tests/e2e/06_customhook.ts similarity index 100% rename from __tests__/e2e/06_customhook.ts rename to tests/e2e/06_customhook.ts diff --git a/__tests__/e2e/07_todolist.ts b/tests/e2e/07_todolist.ts similarity index 100% rename from __tests__/e2e/07_todolist.ts rename to tests/e2e/07_todolist.ts diff --git a/__tests__/e2e/08_comparison.ts b/tests/e2e/08_comparison.ts similarity index 100% rename from __tests__/e2e/08_comparison.ts rename to tests/e2e/08_comparison.ts diff --git a/__tests__/e2e/09_reactmemo.ts b/tests/e2e/09_reactmemo.ts similarity index 100% rename from __tests__/e2e/09_reactmemo.ts rename to tests/e2e/09_reactmemo.ts diff --git a/__tests__/e2e/10_untracked.ts b/tests/e2e/10_untracked.ts similarity index 100% rename from __tests__/e2e/10_untracked.ts rename to tests/e2e/10_untracked.ts diff --git a/__tests__/e2e/11_form.ts b/tests/e2e/11_form.ts similarity index 100% rename from __tests__/e2e/11_form.ts rename to tests/e2e/11_form.ts diff --git a/__tests__/e2e/12_async.ts b/tests/e2e/12_async.ts similarity index 100% rename from __tests__/e2e/12_async.ts rename to tests/e2e/12_async.ts diff --git a/__tests__/e2e/13_saga.ts b/tests/e2e/13_saga.ts similarity index 100% rename from __tests__/e2e/13_saga.ts rename to tests/e2e/13_saga.ts diff --git a/__tests__/e2e/14_dynamic.ts b/tests/e2e/14_dynamic.ts similarity index 100% rename from __tests__/e2e/14_dynamic.ts rename to tests/e2e/14_dynamic.ts diff --git a/__tests__/e2e/15_reactmemoref.ts b/tests/e2e/15_reactmemoref.ts similarity index 100% rename from __tests__/e2e/15_reactmemoref.ts rename to tests/e2e/15_reactmemoref.ts diff --git a/__tests__/e2e/__snapshots__/01_minimal.ts.snap b/tests/e2e/__snapshots__/01_minimal.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/01_minimal.ts.snap rename to tests/e2e/__snapshots__/01_minimal.ts.snap diff --git a/__tests__/e2e/__snapshots__/02_typescript.ts.snap b/tests/e2e/__snapshots__/02_typescript.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/02_typescript.ts.snap rename to tests/e2e/__snapshots__/02_typescript.ts.snap diff --git a/__tests__/e2e/__snapshots__/03_usestate.ts.snap b/tests/e2e/__snapshots__/03_usestate.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/03_usestate.ts.snap rename to tests/e2e/__snapshots__/03_usestate.ts.snap diff --git a/__tests__/e2e/__snapshots__/04_selector.ts.snap b/tests/e2e/__snapshots__/04_selector.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/04_selector.ts.snap rename to tests/e2e/__snapshots__/04_selector.ts.snap diff --git a/__tests__/e2e/__snapshots__/05_container.ts.snap b/tests/e2e/__snapshots__/05_container.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/05_container.ts.snap rename to tests/e2e/__snapshots__/05_container.ts.snap diff --git a/__tests__/e2e/__snapshots__/06_customhook.ts.snap b/tests/e2e/__snapshots__/06_customhook.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/06_customhook.ts.snap rename to tests/e2e/__snapshots__/06_customhook.ts.snap diff --git a/__tests__/e2e/__snapshots__/07_todolist.ts.snap b/tests/e2e/__snapshots__/07_todolist.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/07_todolist.ts.snap rename to tests/e2e/__snapshots__/07_todolist.ts.snap diff --git a/__tests__/e2e/__snapshots__/08_comparison.ts.snap b/tests/e2e/__snapshots__/08_comparison.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/08_comparison.ts.snap rename to tests/e2e/__snapshots__/08_comparison.ts.snap diff --git a/__tests__/e2e/__snapshots__/09_reactmemo.ts.snap b/tests/e2e/__snapshots__/09_reactmemo.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/09_reactmemo.ts.snap rename to tests/e2e/__snapshots__/09_reactmemo.ts.snap diff --git a/__tests__/e2e/__snapshots__/10_untracked.ts.snap b/tests/e2e/__snapshots__/10_untracked.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/10_untracked.ts.snap rename to tests/e2e/__snapshots__/10_untracked.ts.snap diff --git a/__tests__/e2e/__snapshots__/11_form.ts.snap b/tests/e2e/__snapshots__/11_form.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/11_form.ts.snap rename to tests/e2e/__snapshots__/11_form.ts.snap diff --git a/__tests__/e2e/__snapshots__/12_async.ts.snap b/tests/e2e/__snapshots__/12_async.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/12_async.ts.snap rename to tests/e2e/__snapshots__/12_async.ts.snap diff --git a/__tests__/e2e/__snapshots__/13_saga.ts.snap b/tests/e2e/__snapshots__/13_saga.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/13_saga.ts.snap rename to tests/e2e/__snapshots__/13_saga.ts.snap diff --git a/__tests__/e2e/__snapshots__/14_dynamic.ts.snap b/tests/e2e/__snapshots__/14_dynamic.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/14_dynamic.ts.snap rename to tests/e2e/__snapshots__/14_dynamic.ts.snap diff --git a/__tests__/e2e/__snapshots__/15_reactmemoref.ts.snap b/tests/e2e/__snapshots__/15_reactmemoref.ts.snap similarity index 100% rename from __tests__/e2e/__snapshots__/15_reactmemoref.ts.snap rename to tests/e2e/__snapshots__/15_reactmemoref.ts.snap diff --git a/tests/vitest-setup.js b/tests/vitest-setup.js new file mode 100644 index 00000000..bb02c60c --- /dev/null +++ b/tests/vitest-setup.js @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest'; diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 00000000..cfb5bb00 --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "verbatimModuleSyntax": false, + "declaration": true, + "outDir": "./dist/cjs" + }, + "include": ["src"] +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..f9ef3ba3 --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "declaration": true, + "outDir": "./dist" + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json index 81747ffd..f53340da 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,20 +1,20 @@ { "compilerOptions": { "strict": true, - "target": "esnext", + "target": "es2018", "downlevelIteration": true, "esModuleInterop": true, - "module": "es2015", - "moduleResolution": "node", + "module": "nodenext", + "skipLibCheck": true, "allowJs": true, - "noUnusedLocals": true, - "noUnusedParameters": true, + "verbatimModuleSyntax": true, "noUncheckedIndexedAccess": true, "exactOptionalPropertyTypes": true, - "jsx": "react", + "jsx": "react-jsx", "baseUrl": ".", "paths": { - "react-tracked": ["./src"] + "react-tracked": ["./src/index.js"] } - } + }, + "exclude": ["dist", "examples"] } diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000..cd2345a1 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,65 @@ +/// + +import { resolve } from 'node:path'; +import { readFileSync } from 'node:fs'; +import { defineConfig } from 'vite'; +import type { Plugin } from 'vite'; + +const { DIR, PORT = '8080' } = process.env; + +export default defineConfig(({ mode }) => { + if (mode === 'test') { + return { + resolve: { alias: { 'react-tracked': resolve('src') } }, + test: { + environment: 'happy-dom', + setupFiles: ['./tests/vitest-setup.js'], + }, + }; + } + if (!DIR) { + throw new Error('DIR environment variable is required'); + } + return { + root: resolve('examples', DIR), + server: { port: Number(PORT) }, + resolve: { alias: { 'react-tracked': resolve('src') } }, + plugins: [indexHtml(resolve('examples', DIR, 'public', 'index.html'))], + }; +}); + +function indexHtml(file: string): Plugin { + const html = readFileSync(file, 'utf8'); + return { + name: 'index-html-plugin', + configureServer(server) { + return () => { + server.middlewares.use((req, res) => { + server + .transformIndexHtml(req.url || '', html) + .then((content) => { + res.statusCode = 200; + res.setHeader('content-type', 'text/html; charset=utf-8'); + res.end(content); + }) + .catch((err) => { + console.error('Error transforming index.html', err); + res.statusCode = 500; + res.end('Internal Server Error'); + }); + }); + }; + }, + config() { + return { optimizeDeps: { entries: ['src/index'] } }; + }, + transformIndexHtml() { + return [ + { + tag: 'script', + attrs: { type: 'module', src: '/src/index' }, + }, + ]; + }, + }; +} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 3bb8b416..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,41 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -const { DIR, EXT = 'ts' } = process.env; - -module.exports = { - mode: 'development', - devtool: 'cheap-module-source-map', - entry: `./examples/${DIR}/src/index.${EXT}`, - output: { - publicPath: '/', - }, - plugins: [ - new HtmlWebpackPlugin({ - template: `./examples/${DIR}/public/index.html`, - }), - ], - module: { - rules: [{ - test: /\.[jt]sx?$/, - exclude: /node_modules/, - loader: 'ts-loader', - options: { - transpileOnly: true, - }, - }], - }, - resolve: { - extensions: ['.js', '.jsx', '.ts', '.tsx'], - alias: { - 'react-tracked': `${__dirname}/src`, - }, - }, - devServer: { - port: process.env.PORT || '8080', - static: { - directory: `./examples/${DIR}/public`, - }, - historyApiFallback: true, - }, -}; From b284496ba39f7c5f0bb2693b11d550871b69ca7b Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 21:40:38 +0900 Subject: [PATCH 02/25] format with prettier --- .prettierignore | 2 + CHANGELOG.md | 104 +++++++ README.md | 24 +- examples/01_minimal/src/index.js | 30 +- examples/02_typescript/src/Counter.tsx | 8 +- examples/02_typescript/src/Person.tsx | 8 +- examples/02_typescript/src/state.ts | 67 +++-- examples/03_usestate/src/Counter.tsx | 4 +- examples/03_usestate/src/state.ts | 4 +- examples/04_selector/src/Counter.tsx | 8 +- examples/04_selector/src/state.ts | 63 ++-- examples/05_container/src/Counter.tsx | 8 +- examples/05_container/src/state.ts | 22 +- examples/06_customhook/src/index.tsx | 12 +- examples/07_todolist/src/hooks/useAddTodo.ts | 23 +- .../07_todolist/src/hooks/useToggleTodo.ts | 21 +- .../src/hooks/useVisibilityFilter.ts | 15 +- .../08_comparison/src/ContextWithMemo.tsx | 95 +++--- .../08_comparison/src/ContextWithUseMemo.tsx | 5 +- examples/08_comparison/src/NaiveContext.tsx | 5 +- examples/08_comparison/src/ReactTracked.tsx | 7 +- examples/08_comparison/src/SplitContext.tsx | 26 +- examples/09_reactmemo/src/store.ts | 14 +- examples/10_untracked/src/TodoItem.tsx | 14 +- examples/10_untracked/src/store.ts | 42 +-- examples/11_form/src/App.tsx | 4 +- examples/11_form/src/PersonForm.tsx | 4 +- examples/11_form/src/form.ts | 72 +++-- examples/12_async/src/Counter.tsx | 11 +- examples/12_async/src/Main.tsx | 6 +- examples/12_async/src/store.ts | 69 +++-- examples/13_saga/src/Counter.tsx | 11 +- examples/13_saga/src/Main.tsx | 6 +- examples/13_saga/src/store.ts | 35 ++- examples/14_dynamic/src/Counter.tsx | 19 +- examples/14_dynamic/src/Person.tsx | 8 +- examples/14_dynamic/src/state.ts | 83 +++--- examples/15_reactmemoref/src/store.ts | 14 +- src/createContainer.ts | 104 ++++--- src/createTrackedSelector.ts | 52 ++-- tests/01_basic.spec.tsx | 4 +- tests/e2e/01_minimal.ts | 182 ++++++++---- tests/e2e/02_typescript.ts | 223 ++++++++++---- tests/e2e/03_usestate.ts | 133 ++++++--- tests/e2e/04_selector.ts | 167 ++++++++--- tests/e2e/05_container.ts | 278 +++++++++++++----- tests/e2e/06_customhook.ts | 64 +++- tests/e2e/07_todolist.ts | 112 +++++-- tests/e2e/08_comparison.ts | 44 ++- tests/e2e/09_reactmemo.ts | 24 +- tests/e2e/10_untracked.ts | 102 +++++-- tests/e2e/11_form.ts | 44 ++- tests/e2e/12_async.ts | 37 ++- tests/e2e/13_saga.ts | 37 ++- tests/e2e/14_dynamic.ts | 100 +++++-- tests/e2e/15_reactmemoref.ts | 24 +- .../src/index.js | 55 ++-- website/docs/api.md | 8 +- website/docs/quick-start.md | 6 +- website/docs/recipes.md | 75 ++--- website/docs/tutorial-01.md | 2 +- website/docs/tutorial-02.md | 10 +- website/docs/tutorial-03.md | 34 ++- website/docs/tutorial-04.md | 112 +++---- website/docusaurus.config.js | 7 +- website/sidebars.js | 21 +- website/src/pages/index.js | 29 +- 67 files changed, 2026 insertions(+), 1037 deletions(-) diff --git a/.prettierignore b/.prettierignore index e6d29c29..613163b1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,4 @@ /pnpm-lock.yaml /dist +/website/pnpm-lock.yaml +/website/dist diff --git a/CHANGELOG.md b/CHANGELOG.md index 6194056e..706f8158 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,219 +1,323 @@ # Change Log ## [Unreleased] + ### Added + - breaking: make it compatible with memo and react compiler #202 + ### Removed + - `memo` is removed as it is no longer necessary with #202 ## [1.7.14] - 2024-03-08 + ### Changed + - update use-context-selector v1.4.4 ## [1.7.13] - 2024-03-06 + ### Changed + - update use-context-selector v1.4.3 ## [1.7.12] - 2024-03-02 + ### Changed + - update use-context-selector #200 ## [1.7.11] - 2023-01-04 + ### Changed + - Update proxy-compare v2.4.0 #170 ## [1.7.10] - 2022-08-13 + ### Changed + - Update proxy-compare - Update use-context-selector ## [1.7.9] - 2022-04-17 + ### Changed + - fix: extra re-renders in dev mode #148 ## [1.7.8] - 2022-03-18 + ### Changed + - fix: make default context values customizable #143 - Update proxy-compare ## [1.7.7] - 2022-03-09 + ### Changed + - fix: improve no provider error #139 ## [1.7.6] - 2022-01-12 + ### Changed + - feat: Added container name optional args when creating containers (#132) ## [1.7.5] - 2021-11-14 + ### Changed + - Update dependencies fixing ESM exports (#125) - fix: eliminate useLayoutEffect (#118) ## [1.7.4] - 2021-08-13 + ### Changed + - Fix package.json properly for ESM (#115) ## [1.7.3] - 2021-07-01 + ### Changed + - Fix anonymous functions shown in devtools (#108) ## [1.7.2] - 2021-06-03 + ### Changed + - Fix useTracked for legacy mode following #92 (#102) ## [1.7.1] - 2021-05-15 + ### Changed + - Update proxy-compare and drop unstable options (#96) ## [1.7.0] - 2021-04-11 + ### Changed + - createContainer takes the second argument for opt-in concurrent mode support (#92) - This is a (technically breaking) behavioral change. ## [1.6.6] - 2021-04-05 + ### Changed + - Better SSR detection for Deno (#89) ## [1.6.5] - 2021-01-24 + ### Changed + - Update use-context-selector to fix some behaviors ## [1.6.4] - 2021-01-21 + ### Changed + - Fix read-only and non-configurable data property error (#81) ## [1.6.3] - 2021-01-17 + ### Changed + - Support memo with forwarded ref (#80) ## [1.6.2] - 2021-01-14 + ### Changed + - Improve memo typing (#77) ## [1.6.1] - 2020-12-30 + ### Changed + - Fix a hypothetical issue of reusing deepChangedCache ## [1.6.0] - 2020-12-26 + ### Added + - Export createTrackedSelector, a new building-block function (#71) ## [1.5.1] - 2020-12-19 + ### Changed + - Fix a fatal bug in v1.5.0 (#72) ## [1.5.0] - 2020-12-04 + ### Changed + - Refactor: typescript, proxy-compare, use-context-selector (#68) ## [1.4.2] - 2020-09-08 + ### Changed + - Fix invalid type definitions (#59) ## [1.4.1] - 2020-06-23 + ### Changed + - Use `unstable_batchedUpdates` internally (#54) ## [1.4.0] - 2020-05-13 + ### Changed + - Export a special memo instead of trackMemo (#47) - This is a breaking change in API and requires migration ## [1.3.0] - 2020-03-07 + ### Changed + - Notify child components in update not in render (#42) - No updates on props change (breaking change in an undocumented behavior) - The `update` must be a function (breaking change in an example and a recipe) ## [1.2.0] - 2020-02-29 + ### Changed + - Fix anonymous hook names (#39) - Add debug value to show tracked paths in useTrackedState (#40) - Unwrap Proxy before wrapping to mitigate possible pitfalls (#41) ## [1.1.1] - 2020-02-26 + ### Changed + - Use useIsomorphicLayoutEffect in Provider to eliminate SSR warning ## [1.1.0] - 2020-02-24 + ### Changed + - A workaround for React render warning (hopefully temporarily) ## [1.0.6] - 2020-02-11 + ### Changed + - Betect SSR beter by checking userAgent ## [1.0.5] - 2020-02-03 + ### Changed + - Ignore thrown error/promise in useTrackedState callback (for Suspense) ## [1.0.4] - 2020-02-02 + ### Changed + - Improve internal mode for deepProxy behavior - This doesn't change the default behavior ## [1.0.3] - 2020-02-01 + ### Changed + - Fix typing of a readonly tuple in 1.0.2 - Fix typing of useValue in createContainer ## [1.0.2] - 2020-01-19 + ### Changed + - Change useValue type to accept a readonly tuple ## [1.0.1] - 2020-01-05 + ### Changed + - Possibly reduce bundle size ## [1.0.0] - 2019-12-05 + ### Changed + - Fix API and release v1 ## [0.11.0] - 2019-10-12 + ### Added + - A new API getUntrackedObject as an escape hatch (#24) ## [0.10.0] - 2019-10-08 + ### Added + - A new API trackMemo as an escape hatch for React.memo (#22) ## [0.9.0] - 2019-10-05 + ### Changed + - Inline useForceUpdate to remove unnecessary deps ## [0.8.0] - 2019-09-05 + ### Changed + - Only provide container API (breaking change) (#16) ## [0.7.0] - 2019-07-20 + ### Changed + - No useLayoutEffect for invoking listeners (which leads de-opt sync mode) ## [0.6.0] - 2019-07-15 + ### Changed + - Prefer createContainer to default context (#5) ## [0.5.0] - 2019-07-13 + ### Changed + - Warn if useValue is not statically defined ## [0.4.0] - 2019-06-14 + ### Added + - Add createContainer + ### Changed + - Rename to simple provider (breaking change) ## [0.3.0] - 2019-06-13 + ### Changed + - Add customContext support - Fix useDispatch - Remove unnecessary batchedUpdates - Split useTrackedState and useTracked ## [0.2.0] - 2019-06-13 + ### Changed + - Properly useEffect in TrackedProvider ## [0.1.0] - 2019-06-12 + ### Added + - Initial experimental release diff --git a/README.md b/README.md index 35847b5b..986e6bdf 100644 --- a/README.md +++ b/README.md @@ -71,10 +71,11 @@ There could be various use cases. Here are some typical ones. ```js import { useState } from 'react'; -const useValue = () => useState({ - count: 0, - text: 'hello', -}); +const useValue = () => + useState({ + count: 0, + text: 'hello', + }); ``` This can be useReducer or any hook that returns a tuple `[state, dispatch]`. @@ -101,7 +102,9 @@ const Counter = () => { return (
Count: {state.count} - +
); }; @@ -145,7 +148,9 @@ const Counter = () => { return (
Count: {state.count} - +
); }; @@ -175,12 +180,14 @@ const useTrackedStore = createTrackedSelector(useStore); const Counter = () => { const state = useTrackedStore(); const increment = () => { - useStore.setState(prev => ({ count: prev.count + 1 })); + useStore.setState((prev) => ({ count: prev.count + 1 })); }; return (
Count: {state.count} - +
); }; @@ -196,6 +203,7 @@ If you see more `console.log` logs than expected, you may want to try putting `console.log` in useEffect. If that shows logs as expected, it's an expected behavior. For more information: + - https://github.com/dai-shi/use-context-selector/issues/100 - https://github.com/dai-shi/react-tracked/issues/177 diff --git a/examples/01_minimal/src/index.js b/examples/01_minimal/src/index.js index 59db45cd..854ab0c7 100644 --- a/examples/01_minimal/src/index.js +++ b/examples/01_minimal/src/index.js @@ -3,7 +3,8 @@ import { createRoot } from 'react-dom/client'; import { createContainer } from 'react-tracked'; -const useValue = ({ reducer, initialState }) => useReducer(reducer, initialState); +const useValue = ({ reducer, initialState }) => + useReducer(reducer, initialState); const { Provider, useTracked } = createContainer(useValue); const initialState = { @@ -13,10 +14,14 @@ const initialState = { const reducer = (state, action) => { switch (action.type) { - case 'increment': return { ...state, count: state.count + 1 }; - case 'decrement': return { ...state, count: state.count - 1 }; - case 'setText': return { ...state, text: action.text }; - default: throw new Error(`unknown action type: ${action.type}`); + case 'increment': + return { ...state, count: state.count + 1 }; + case 'decrement': + return { ...state, count: state.count - 1 }; + case 'setText': + return { ...state, text: action.text }; + default: + throw new Error(`unknown action type: ${action.type}`); } }; @@ -29,8 +34,12 @@ const Counter = () => { numRendered: {++numRendered}
Count: {state.count} - - + +
); @@ -43,7 +52,12 @@ const TextBox = () => { numRendered: {++numRendered}
Text: {state.text} - dispatch({ type: 'setText', text: event.target.value })} /> + + dispatch({ type: 'setText', text: event.target.value }) + } + />
); diff --git a/examples/02_typescript/src/Counter.tsx b/examples/02_typescript/src/Counter.tsx index 74a154dc..d4e4b84e 100644 --- a/examples/02_typescript/src/Counter.tsx +++ b/examples/02_typescript/src/Counter.tsx @@ -11,8 +11,12 @@ const Counter = () => { numRendered: {++numRendered}
Count: {state.count} - - + +
); diff --git a/examples/02_typescript/src/Person.tsx b/examples/02_typescript/src/Person.tsx index aaad3bbd..ccebe58d 100644 --- a/examples/02_typescript/src/Person.tsx +++ b/examples/02_typescript/src/Person.tsx @@ -12,8 +12,12 @@ const Counter = ({ firstName }: { firstName: string }) => { {firstName}
Count: {state.count} - - + +
); diff --git a/examples/02_typescript/src/state.ts b/examples/02_typescript/src/state.ts index 855fcf17..37f6c4c9 100644 --- a/examples/02_typescript/src/state.ts +++ b/examples/02_typescript/src/state.ts @@ -22,35 +22,40 @@ type Action = const reducer: Reducer = (state, action) => { switch (action.type) { - case 'increment': return { - ...state, - count: state.count + 1, - }; - case 'decrement': return { - ...state, - count: state.count - 1, - }; - case 'setFirstName': return { - ...state, - person: { - ...state.person, - firstName: action.firstName, - }, - }; - case 'setLastName': return { - ...state, - person: { - ...state.person, - lastName: action.lastName, - }, - }; - case 'setAge': return { - ...state, - person: { - ...state.person, - age: action.age, - }, - }; + case 'increment': + return { + ...state, + count: state.count + 1, + }; + case 'decrement': + return { + ...state, + count: state.count - 1, + }; + case 'setFirstName': + return { + ...state, + person: { + ...state.person, + firstName: action.firstName, + }, + }; + case 'setLastName': + return { + ...state, + person: { + ...state.person, + lastName: action.lastName, + }, + }; + case 'setAge': + return { + ...state, + person: { + ...state.person, + age: action.age, + }, + }; default: throw new Error('unknown action type'); } @@ -58,4 +63,6 @@ const reducer: Reducer = (state, action) => { const useValue = () => useReducer(reducer, initialState); -export const { Provider, useTracked } = createContainer(useValue, { concurrentMode: true }); +export const { Provider, useTracked } = createContainer(useValue, { + concurrentMode: true, +}); diff --git a/examples/03_usestate/src/Counter.tsx b/examples/03_usestate/src/Counter.tsx index 71d8bf63..392daded 100644 --- a/examples/03_usestate/src/Counter.tsx +++ b/examples/03_usestate/src/Counter.tsx @@ -17,7 +17,9 @@ const Counter = () => { numRendered: {++numRendered}
Count: {state.count} - +
); diff --git a/examples/03_usestate/src/state.ts b/examples/03_usestate/src/state.ts index deb1fba1..a83b4178 100644 --- a/examples/03_usestate/src/state.ts +++ b/examples/03_usestate/src/state.ts @@ -13,4 +13,6 @@ const initialState = { const useValue = () => useState(initialState); -export const { Provider, useTracked } = createContainer(useValue, { concurrentMode: true }); +export const { Provider, useTracked } = createContainer(useValue, { + concurrentMode: true, +}); diff --git a/examples/04_selector/src/Counter.tsx b/examples/04_selector/src/Counter.tsx index a05b59d8..f665f978 100644 --- a/examples/04_selector/src/Counter.tsx +++ b/examples/04_selector/src/Counter.tsx @@ -12,8 +12,12 @@ const Counter = () => { numRendered: {++numRendered}
Count: {count} - - + +
); diff --git a/examples/04_selector/src/state.ts b/examples/04_selector/src/state.ts index 2522f52f..3273b1c8 100644 --- a/examples/04_selector/src/state.ts +++ b/examples/04_selector/src/state.ts @@ -22,35 +22,40 @@ type Action = const reducer: Reducer = (state, action) => { switch (action.type) { - case 'increment': return { - ...state, - count: state.count + 1, - }; - case 'decrement': return { - ...state, - count: state.count - 1, - }; - case 'setFirstName': return { - ...state, - person: { - ...state.person, - firstName: action.firstName, - }, - }; - case 'setLastName': return { - ...state, - person: { - ...state.person, - lastName: action.lastName, - }, - }; - case 'setAge': return { - ...state, - person: { - ...state.person, - age: action.age, - }, - }; + case 'increment': + return { + ...state, + count: state.count + 1, + }; + case 'decrement': + return { + ...state, + count: state.count - 1, + }; + case 'setFirstName': + return { + ...state, + person: { + ...state.person, + firstName: action.firstName, + }, + }; + case 'setLastName': + return { + ...state, + person: { + ...state.person, + lastName: action.lastName, + }, + }; + case 'setAge': + return { + ...state, + person: { + ...state.person, + age: action.age, + }, + }; default: throw new Error('unknown action type'); } diff --git a/examples/05_container/src/Counter.tsx b/examples/05_container/src/Counter.tsx index 4d337e2c..b91da3f5 100644 --- a/examples/05_container/src/Counter.tsx +++ b/examples/05_container/src/Counter.tsx @@ -11,8 +11,12 @@ const Counter = ({ useTracked }: { useTracked: typeof useValue }) => { numRendered: {++numRendered}
Count: {state.count} - - + +
); diff --git a/examples/05_container/src/state.ts b/examples/05_container/src/state.ts index 71cecc35..69932ab9 100644 --- a/examples/05_container/src/state.ts +++ b/examples/05_container/src/state.ts @@ -6,20 +6,20 @@ const initialState = { type State = typeof initialState; -type Action = - | { type: 'increment' } - | { type: 'decrement' } +type Action = { type: 'increment' } | { type: 'decrement' }; const reducer: Reducer = (state, action) => { switch (action.type) { - case 'increment': return { - ...state, - count: state.count + 1, - }; - case 'decrement': return { - ...state, - count: state.count - 1, - }; + case 'increment': + return { + ...state, + count: state.count + 1, + }; + case 'decrement': + return { + ...state, + count: state.count - 1, + }; default: throw new Error('unknown action type'); } diff --git a/examples/06_customhook/src/index.tsx b/examples/06_customhook/src/index.tsx index b47d9438..b061cfea 100644 --- a/examples/06_customhook/src/index.tsx +++ b/examples/06_customhook/src/index.tsx @@ -17,7 +17,9 @@ const useValue = () => { return [count, setCount] as const; }; -const { Provider, useTracked } = createContainer(useValue, { concurrentMode: true }); +const { Provider, useTracked } = createContainer(useValue, { + concurrentMode: true, +}); const Counter = () => { const [count, setCount] = useTracked(); @@ -26,8 +28,12 @@ const Counter = () => { return (
Count: {count} - - + +
); }; diff --git a/examples/07_todolist/src/hooks/useAddTodo.ts b/examples/07_todolist/src/hooks/useAddTodo.ts index 848a008c..7b1901ff 100644 --- a/examples/07_todolist/src/hooks/useAddTodo.ts +++ b/examples/07_todolist/src/hooks/useAddTodo.ts @@ -7,15 +7,20 @@ let nextTodoId = 0; const useAddTodo = () => { const setState = useSetState(); - const addTodo = useCallback((text: string) => { - setState((s) => produce(s, (draft) => { - draft.todos.push({ - id: nextTodoId++, - text, - completed: false, - }); - })); - }, [setState]); + const addTodo = useCallback( + (text: string) => { + setState((s) => + produce(s, (draft) => { + draft.todos.push({ + id: nextTodoId++, + text, + completed: false, + }); + }), + ); + }, + [setState], + ); return addTodo; }; diff --git a/examples/07_todolist/src/hooks/useToggleTodo.ts b/examples/07_todolist/src/hooks/useToggleTodo.ts index 8fc645d0..e115d3a3 100644 --- a/examples/07_todolist/src/hooks/useToggleTodo.ts +++ b/examples/07_todolist/src/hooks/useToggleTodo.ts @@ -5,14 +5,19 @@ import { useSetState } from '../state'; const useToggleTodo = () => { const setState = useSetState(); - const toggleTodo = useCallback((id: number) => { - setState((s) => produce(s, (draft) => { - const found = draft.todos.find((todo) => todo.id === id); - if (found) { - found.completed = !found.completed; - } - })); - }, [setState]); + const toggleTodo = useCallback( + (id: number) => { + setState((s) => + produce(s, (draft) => { + const found = draft.todos.find((todo) => todo.id === id); + if (found) { + found.completed = !found.completed; + } + }), + ); + }, + [setState], + ); return toggleTodo; }; diff --git a/examples/07_todolist/src/hooks/useVisibilityFilter.ts b/examples/07_todolist/src/hooks/useVisibilityFilter.ts index 53ede5c0..1659f431 100644 --- a/examples/07_todolist/src/hooks/useVisibilityFilter.ts +++ b/examples/07_todolist/src/hooks/useVisibilityFilter.ts @@ -5,11 +5,16 @@ import { VisibilityFilterType, useTracked } from '../state'; const useVisibilityFilter = () => { const [state, setState] = useTracked(); - const setVisibilityFilter = useCallback((filter: VisibilityFilterType) => { - setState((s) => produce(s, (draft) => { - draft.visibilityFilter = filter; - })); - }, [setState]); + const setVisibilityFilter = useCallback( + (filter: VisibilityFilterType) => { + setState((s) => + produce(s, (draft) => { + draft.visibilityFilter = filter; + }), + ); + }, + [setState], + ); return [state.visibilityFilter, setVisibilityFilter] as [ VisibilityFilterType, typeof setVisibilityFilter, diff --git a/examples/08_comparison/src/ContextWithMemo.tsx b/examples/08_comparison/src/ContextWithMemo.tsx index 0c3ecdca..3992de71 100644 --- a/examples/08_comparison/src/ContextWithMemo.tsx +++ b/examples/08_comparison/src/ContextWithMemo.tsx @@ -29,60 +29,65 @@ const reducer: Reducer = (state, action) => { } }; -const PersonContext = createContext<[State, Dispatch]>([initialState, () => null]); +const PersonContext = createContext<[State, Dispatch]>([ + initialState, + () => null, +]); -const InnerPersonFirstName = React.memo(({ firstName, dispatch }: { - firstName: string; - dispatch: Dispatch; -}) => { - const renders = useRef(1); - useEffect(() => { - renders.current += 1; - }); - return ( -
- First Name: - { - dispatch({ type: 'setFirstName', firstName: event.target.value }); - }} - /> - (renders:{renders.current}) -
- ); -}); +const InnerPersonFirstName = React.memo( + ({ firstName, dispatch }: { firstName: string; dispatch: Dispatch }) => { + const renders = useRef(1); + useEffect(() => { + renders.current += 1; + }); + return ( +
+ First Name: + { + dispatch({ type: 'setFirstName', firstName: event.target.value }); + }} + /> + (renders:{renders.current}) +
+ ); + }, +); const PersonFirstName = () => { const [state, dispatch] = useContext(PersonContext); - return ; -}; - -const InnerPersonFamilyName = React.memo(({ familyName, dispatch }: { - familyName: string; - dispatch: Dispatch; -}) => { - const renders = useRef(1); - useEffect(() => { - renders.current += 1; - }); return ( -
- Family Name: - { - dispatch({ type: 'setFamilyName', familyName: event.target.value }); - }} - /> - (renders:{renders.current}) -
+ ); -}); +}; + +const InnerPersonFamilyName = React.memo( + ({ familyName, dispatch }: { familyName: string; dispatch: Dispatch }) => { + const renders = useRef(1); + useEffect(() => { + renders.current += 1; + }); + return ( +
+ Family Name: + { + dispatch({ type: 'setFamilyName', familyName: event.target.value }); + }} + /> + (renders:{renders.current}) +
+ ); + }, +); const PersonFamilyName = () => { const [state, dispatch] = useContext(PersonContext); - return ; + return ( + + ); }; const ContextWithMemo = () => { diff --git a/examples/08_comparison/src/ContextWithUseMemo.tsx b/examples/08_comparison/src/ContextWithUseMemo.tsx index a10daf31..df05eb67 100644 --- a/examples/08_comparison/src/ContextWithUseMemo.tsx +++ b/examples/08_comparison/src/ContextWithUseMemo.tsx @@ -29,7 +29,10 @@ const reducer: Reducer = (state, action) => { } }; -const PersonContext = createContext<[State, Dispatch]>([initialState, () => null]); +const PersonContext = createContext<[State, Dispatch]>([ + initialState, + () => null, +]); const PersonFirstName = () => { const [state, dispatch] = useContext(PersonContext); diff --git a/examples/08_comparison/src/NaiveContext.tsx b/examples/08_comparison/src/NaiveContext.tsx index 6fb384f9..1ff7cb0d 100644 --- a/examples/08_comparison/src/NaiveContext.tsx +++ b/examples/08_comparison/src/NaiveContext.tsx @@ -29,7 +29,10 @@ const reducer: Reducer = (state, action) => { } }; -const PersonContext = createContext<[State, Dispatch]>([initialState, () => null]); +const PersonContext = createContext<[State, Dispatch]>([ + initialState, + () => null, +]); const PersonFirstName = () => { const [state, dispatch] = useContext(PersonContext); diff --git a/examples/08_comparison/src/ReactTracked.tsx b/examples/08_comparison/src/ReactTracked.tsx index 120f6f0f..97b0e9cf 100644 --- a/examples/08_comparison/src/ReactTracked.tsx +++ b/examples/08_comparison/src/ReactTracked.tsx @@ -1,9 +1,4 @@ -import React, { - useReducer, - useRef, - useEffect, - Reducer, -} from 'react'; +import React, { useReducer, useRef, useEffect, Reducer } from 'react'; import { createContainer } from 'react-tracked'; diff --git a/examples/08_comparison/src/SplitContext.tsx b/examples/08_comparison/src/SplitContext.tsx index 6d44d3f7..75bb4695 100644 --- a/examples/08_comparison/src/SplitContext.tsx +++ b/examples/08_comparison/src/SplitContext.tsx @@ -13,8 +13,7 @@ const initialState1 = { }; type State1 = typeof initialState1; -type Action1 = - | { type: 'setFirstName'; firstName: string } +type Action1 = { type: 'setFirstName'; firstName: string }; type Dispatch1 = (action: Action1) => void; const reducer1: Reducer = (state, action) => { @@ -26,15 +25,17 @@ const reducer1: Reducer = (state, action) => { } }; -const PersonContext1 = createContext<[State1, Dispatch1]>([initialState1, () => null]); +const PersonContext1 = createContext<[State1, Dispatch1]>([ + initialState1, + () => null, +]); const initialState2 = { familyName: 'Potter', }; type State2 = typeof initialState2; -type Action2 = - | { type: 'setFamilyName'; familyName: string }; +type Action2 = { type: 'setFamilyName'; familyName: string }; type Dispatch2 = (action: Action2) => void; const reducer2: Reducer = (state, action) => { @@ -46,7 +47,10 @@ const reducer2: Reducer = (state, action) => { } }; -const PersonContext2 = createContext<[State2, Dispatch2]>([initialState2, () => null]); +const PersonContext2 = createContext<[State2, Dispatch2]>([ + initialState2, + () => null, +]); const PersonFirstName = React.memo(() => { const [state, dispatch] = useContext(PersonContext1); @@ -91,8 +95,14 @@ const PersonFamilyName = React.memo(() => { const SplitContext = () => { const [state1, dispatch1] = useReducer(reducer1, initialState1); const [state2, dispatch2] = useReducer(reducer2, initialState2); - const value1 = useMemo<[State1, Dispatch1]>(() => [state1, dispatch1], [state1, dispatch1]); - const value2 = useMemo<[State2, Dispatch2]>(() => [state2, dispatch2], [state2, dispatch2]); + const value1 = useMemo<[State1, Dispatch1]>( + () => [state1, dispatch1], + [state1, dispatch1], + ); + const value2 = useMemo<[State2, Dispatch2]>( + () => [state2, dispatch2], + [state2, dispatch2], + ); return ( diff --git a/examples/09_reactmemo/src/store.ts b/examples/09_reactmemo/src/store.ts index f2565507..dc3c5d0f 100644 --- a/examples/09_reactmemo/src/store.ts +++ b/examples/09_reactmemo/src/store.ts @@ -45,16 +45,18 @@ const reducer: Reducer = (state, action) => { case 'CHANGE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { ...todo, title: action.title } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id ? { ...todo, title: action.title } : todo, + ), }; case 'TOGGLE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { ...todo, completed: !todo.completed } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id + ? { ...todo, completed: !todo.completed } + : todo, + ), }; default: return state; diff --git a/examples/10_untracked/src/TodoItem.tsx b/examples/10_untracked/src/TodoItem.tsx index fdafdf15..ca368135 100644 --- a/examples/10_untracked/src/TodoItem.tsx +++ b/examples/10_untracked/src/TodoItem.tsx @@ -21,12 +21,20 @@ const TodoItem = ({ todo }: Props) => { /> dispatch({ type: 'CHANGE_TODO', id: todo.id, title: e.target.value })} + onChange={(e) => + dispatch({ type: 'CHANGE_TODO', id: todo.id, title: e.target.value }) + } /> - - diff --git a/examples/10_untracked/src/store.ts b/examples/10_untracked/src/store.ts index c89eba72..9e4b6d19 100644 --- a/examples/10_untracked/src/store.ts +++ b/examples/10_untracked/src/store.ts @@ -48,19 +48,23 @@ const reducer: Reducer = (state, action) => { case 'CHANGE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { - ...todo, - detail: { ...todo.detail, title: action.title }, - } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id + ? { + ...todo, + detail: { ...todo.detail, title: action.title }, + } + : todo, + ), }; case 'TOGGLE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { ...todo, completed: !todo.completed } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id + ? { ...todo, completed: !todo.completed } + : todo, + ), }; case 'DUPLICATE_TODO': return { @@ -105,16 +109,14 @@ const untrackDeep = (obj: T) => { const useUntrackedDispatch = () => { const dispatch = useDispatch(); - return useCallback((action: Action) => { - const untrackedAction = untrackDeep(action); - // console.log(action, untrackedAction); - dispatch(untrackedAction); - }, [dispatch]); + return useCallback( + (action: Action) => { + const untrackedAction = untrackDeep(action); + // console.log(action, untrackedAction); + dispatch(untrackedAction); + }, + [dispatch], + ); }; -export { - Provider, - useTrackedState, - useDispatch, - useUntrackedDispatch, -}; +export { Provider, useTrackedState, useDispatch, useUntrackedDispatch }; diff --git a/examples/11_form/src/App.tsx b/examples/11_form/src/App.tsx index e4737df1..edd7259a 100644 --- a/examples/11_form/src/App.tsx +++ b/examples/11_form/src/App.tsx @@ -6,7 +6,9 @@ const App = () => ( ); diff --git a/examples/11_form/src/PersonForm.tsx b/examples/11_form/src/PersonForm.tsx index b1cf6018..906fafe8 100644 --- a/examples/11_form/src/PersonForm.tsx +++ b/examples/11_form/src/PersonForm.tsx @@ -75,7 +75,9 @@ const PersonForm = React.memo(() => { return (
numRendered: {++numRendered} - +

First Name

Family Name

diff --git a/examples/11_form/src/form.ts b/examples/11_form/src/form.ts index 05b6126a..1dec986c 100644 --- a/examples/11_form/src/form.ts +++ b/examples/11_form/src/form.ts @@ -1,9 +1,4 @@ -import { - ChangeEvent, - useState, - useCallback, - useLayoutEffect, -} from 'react'; +import { ChangeEvent, useState, useCallback, useLayoutEffect } from 'react'; import { createContainer, getUntrackedObject } from 'react-tracked'; @@ -46,36 +41,40 @@ const useFormField = ( ) => { const state = useTrackedState(); const setState = useSetState(); - const updateValue = useCallback((value: Value) => { - const err = validate && validate(value); - setState((prev) => { - const nextValues = { ...prev.values }; - const nextErrors = { ...prev.errors }; - if (err) { - delete nextValues[name]; - nextErrors[name] = err; - } else { - nextValues[name] = value; - delete nextErrors[name]; - } - return { values: nextValues, errors: nextErrors }; - }); - }, [name, validate, setState]); + const updateValue = useCallback( + (value: Value) => { + const err = validate && validate(value); + setState((prev) => { + const nextValues = { ...prev.values }; + const nextErrors = { ...prev.errors }; + if (err) { + delete nextValues[name]; + nextErrors[name] = err; + } else { + nextValues[name] = value; + delete nextErrors[name]; + } + return { values: nextValues, errors: nextErrors }; + }); + }, + [name, validate, setState], + ); useLayoutEffect(() => { updateValue(initialValue || ''); }, [initialValue, updateValue]); - const onChange = useCallback(( - event: ChangeEvent, - ) => { - const { target } = event; - let value: Value; - if (target.type === 'checkbox') { - value = (target as HTMLInputElement).checked; - } else { - value = target.value; - } - updateValue(value); - }, [updateValue]); + const onChange = useCallback( + (event: ChangeEvent) => { + const { target } = event; + let value: Value; + if (target.type === 'checkbox') { + value = (target as HTMLInputElement).checked; + } else { + value = target.value; + } + updateValue(value); + }, + [updateValue], + ); return { value: String(state.values[name] || initialValue), checked: Boolean(state.values[name] || initialValue), @@ -83,9 +82,4 @@ const useFormField = ( }; }; -export { - FormProvider, - useFormValues, - useFormError, - useFormField, -}; +export { FormProvider, useFormValues, useFormError, useFormField }; diff --git a/examples/12_async/src/Counter.tsx b/examples/12_async/src/Counter.tsx index 1fc97194..923ac8cb 100644 --- a/examples/12_async/src/Counter.tsx +++ b/examples/12_async/src/Counter.tsx @@ -9,8 +9,15 @@ const Counter = () => {

Counter

Count: {state.count} - - + +
); }; diff --git a/examples/12_async/src/Main.tsx b/examples/12_async/src/Main.tsx index fd6d10f1..7bd1b33e 100644 --- a/examples/12_async/src/Main.tsx +++ b/examples/12_async/src/Main.tsx @@ -14,7 +14,11 @@ const Main = () => { User ID: setId(e.target.value)} /> - {state.loadingState !== 'idle' ? {state.loadingState}... : } + {state.loadingState !== 'idle' ? ( + {state.loadingState}... + ) : ( + + )} ); diff --git a/examples/12_async/src/store.ts b/examples/12_async/src/store.ts index b1b7ddfb..38aa3b8c 100644 --- a/examples/12_async/src/store.ts +++ b/examples/12_async/src/store.ts @@ -21,9 +21,7 @@ type InnerAction = | { type: 'ERROR_FETCH_USER' } | { type: 'DECREMENT' }; -type OuterAction = - | { type: 'CLEAR_USER_NAME' } - | { type: 'INCREMENT' }; +type OuterAction = { type: 'CLEAR_USER_NAME' } | { type: 'INCREMENT' }; type Action = InnerAction | OuterAction; @@ -70,40 +68,51 @@ const reducer: Reducer = (state, action) => { } }; -type AsyncActionFetch = { type: 'FETCH_USER'; id: number } +type AsyncActionFetch = { type: 'FETCH_USER'; id: number }; type AsyncActionClear = { type: 'DELAYED_DECREMENT' }; type AsyncAction = AsyncActionFetch | AsyncActionClear; -const sleep = (ms: number) => new Promise((resolve) => { - setTimeout(resolve, ms); -}); +const sleep = (ms: number) => + new Promise((resolve) => { + setTimeout(resolve, ms); + }); -const asyncActionHandlers: AsyncActionHandlers, AsyncAction> = { - FETCH_USER: ({ dispatch }) => async (action) => { - try { - dispatch({ type: 'START_FETCH_USER' }); - const response = await fetch(`https://reqres.in/api/users/${action.id}?delay=1`); - dispatch({ type: 'CONTINUE_FETCH_USER' }); - const data = await response.json(); +const asyncActionHandlers: AsyncActionHandlers< + Reducer, + AsyncAction +> = { + FETCH_USER: + ({ dispatch }) => + async (action) => { + try { + dispatch({ type: 'START_FETCH_USER' }); + const response = await fetch( + `https://reqres.in/api/users/${action.id}?delay=1`, + ); + dispatch({ type: 'CONTINUE_FETCH_USER' }); + const data = await response.json(); + await sleep(500); + const firstName = data.data.first_name; + if (typeof firstName !== 'string') throw new Error(); + dispatch({ type: 'FINISH_FETCH_USER', firstName }); + } catch (e) { + dispatch({ type: 'ERROR_FETCH_USER' }); + } + }, + DELAYED_DECREMENT: + ({ dispatch }) => + async () => { await sleep(500); - const firstName = data.data.first_name; - if (typeof firstName !== 'string') throw new Error(); - dispatch({ type: 'FINISH_FETCH_USER', firstName }); - } catch (e) { - dispatch({ type: 'ERROR_FETCH_USER' }); - } - }, - DELAYED_DECREMENT: ({ dispatch }) => async () => { - await sleep(500); - dispatch({ type: 'DECREMENT' }); - }, + dispatch({ type: 'DECREMENT' }); + }, }; -const useValue = () => useReducerAsync< - Reducer, - AsyncAction, - AsyncAction | OuterAction ->(reducer, initialState, asyncActionHandlers); +const useValue = () => + useReducerAsync< + Reducer, + AsyncAction, + AsyncAction | OuterAction + >(reducer, initialState, asyncActionHandlers); export const { Provider, diff --git a/examples/13_saga/src/Counter.tsx b/examples/13_saga/src/Counter.tsx index 1fc97194..923ac8cb 100644 --- a/examples/13_saga/src/Counter.tsx +++ b/examples/13_saga/src/Counter.tsx @@ -9,8 +9,15 @@ const Counter = () => {

Counter

Count: {state.count} - - + +
); }; diff --git a/examples/13_saga/src/Main.tsx b/examples/13_saga/src/Main.tsx index fd6d10f1..7bd1b33e 100644 --- a/examples/13_saga/src/Main.tsx +++ b/examples/13_saga/src/Main.tsx @@ -14,7 +14,11 @@ const Main = () => { User ID: setId(e.target.value)} /> - {state.loadingState !== 'idle' ? {state.loadingState}... : } + {state.loadingState !== 'idle' ? ( + {state.loadingState}... + ) : ( + + )} ); diff --git a/examples/13_saga/src/store.ts b/examples/13_saga/src/store.ts index 31f91a36..674c02c1 100644 --- a/examples/13_saga/src/store.ts +++ b/examples/13_saga/src/store.ts @@ -29,9 +29,7 @@ type InnerAction = | { type: 'ERROR_FETCH_USER' } | { type: 'DECREMENT' }; -type OuterAction = - | { type: 'CLEAR_USER_NAME' } - | { type: 'INCREMENT' }; +type OuterAction = { type: 'CLEAR_USER_NAME' } | { type: 'INCREMENT' }; const reducer: Reducer = (state, action) => { switch (action.type) { @@ -76,16 +74,20 @@ const reducer: Reducer = (state, action) => { } }; -type AsyncActionFetch = { type: 'FETCH_USER'; id: number } +type AsyncActionFetch = { type: 'FETCH_USER'; id: number }; type AsyncActionDecrement = { type: 'DELAYED_DECREMENT' }; type AsyncAction = AsyncActionFetch | AsyncActionDecrement; function* userFetcher(action: AsyncActionFetch) { try { yield put({ type: 'START_FETCH_USER' }); - const response: Response = yield call(() => fetch(`https://reqres.in/api/users/${action.id}?delay=1`)); + const response: Response = yield call(() => + fetch(`https://reqres.in/api/users/${action.id}?delay=1`), + ); yield put({ type: 'CONTINUE_FETCH_USER' }); - const data: { data: Record } = yield call(() => response.json()); + const data: { data: Record } = yield call(() => + response.json(), + ); yield delay(500); const firstName = data.data.first_name; if (typeof firstName !== 'string') throw new Error(); @@ -105,21 +107,22 @@ function* userFetchingSaga() { } function* delayedDecrementingSaga() { - yield takeEvery('DELAYED_DECREMENT', delayedDecrementer); + yield takeEvery( + 'DELAYED_DECREMENT', + delayedDecrementer, + ); } function* rootSaga() { - yield all([ - userFetchingSaga(), - delayedDecrementingSaga(), - ]); + yield all([userFetchingSaga(), delayedDecrementingSaga()]); } -const useValue = () => useSagaReducer( - rootSaga, - reducer as Reducer, - initialState, -); +const useValue = () => + useSagaReducer( + rootSaga, + reducer as Reducer, + initialState, + ); export const { Provider, diff --git a/examples/14_dynamic/src/Counter.tsx b/examples/14_dynamic/src/Counter.tsx index c2565bea..4f5b583a 100644 --- a/examples/14_dynamic/src/Counter.tsx +++ b/examples/14_dynamic/src/Counter.tsx @@ -12,9 +12,22 @@ const Counter = () => { numRendered: {++numRendered}
Count: {state.count[index]} - - - setIndex(Number(e.target.value) || 0)} /> + + + setIndex(Number(e.target.value) || 0)} + />
); diff --git a/examples/14_dynamic/src/Person.tsx b/examples/14_dynamic/src/Person.tsx index 00732755..07b22233 100644 --- a/examples/14_dynamic/src/Person.tsx +++ b/examples/14_dynamic/src/Person.tsx @@ -20,7 +20,9 @@ const Person = () => { dispatch({ firstName, type: 'setFirstName' }); }} /> - + )} {mode === 'last' && ( @@ -33,7 +35,9 @@ const Person = () => { dispatch({ lastName, type: 'setLastName' }); }} /> - + )}
diff --git a/examples/14_dynamic/src/state.ts b/examples/14_dynamic/src/state.ts index d4c368c4..a271d3b2 100644 --- a/examples/14_dynamic/src/state.ts +++ b/examples/14_dynamic/src/state.ts @@ -22,43 +22,48 @@ type Action = const reducer: Reducer = (state, action) => { switch (action.type) { - case 'increment': return { - ...state, - count: [ - ...state.count.slice(0, action.index), - (state.count[action.index] as number) + 1, - ...state.count.slice(action.index + 1), - ], - }; - case 'decrement': return { - ...state, - count: [ - ...state.count.slice(0, action.index), - (state.count[action.index] as number) - 1, - ...state.count.slice(action.index + 1), - ], - }; - case 'setFirstName': return { - ...state, - person: { - ...state.person, - firstName: action.firstName, - }, - }; - case 'setLastName': return { - ...state, - person: { - ...state.person, - lastName: action.lastName, - }, - }; - case 'setAge': return { - ...state, - person: { - ...state.person, - age: action.age, - }, - }; + case 'increment': + return { + ...state, + count: [ + ...state.count.slice(0, action.index), + (state.count[action.index] as number) + 1, + ...state.count.slice(action.index + 1), + ], + }; + case 'decrement': + return { + ...state, + count: [ + ...state.count.slice(0, action.index), + (state.count[action.index] as number) - 1, + ...state.count.slice(action.index + 1), + ], + }; + case 'setFirstName': + return { + ...state, + person: { + ...state.person, + firstName: action.firstName, + }, + }; + case 'setLastName': + return { + ...state, + person: { + ...state.person, + lastName: action.lastName, + }, + }; + case 'setAge': + return { + ...state, + person: { + ...state.person, + age: action.age, + }, + }; default: throw new Error('unknown action type'); } @@ -66,4 +71,6 @@ const reducer: Reducer = (state, action) => { const useValue = () => useReducer(reducer, initialState); -export const { Provider, useTracked } = createContainer(useValue, { concurrentMode: true }); +export const { Provider, useTracked } = createContainer(useValue, { + concurrentMode: true, +}); diff --git a/examples/15_reactmemoref/src/store.ts b/examples/15_reactmemoref/src/store.ts index f2565507..dc3c5d0f 100644 --- a/examples/15_reactmemoref/src/store.ts +++ b/examples/15_reactmemoref/src/store.ts @@ -45,16 +45,18 @@ const reducer: Reducer = (state, action) => { case 'CHANGE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { ...todo, title: action.title } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id ? { ...todo, title: action.title } : todo, + ), }; case 'TOGGLE_TODO': return { ...state, - todos: state.todos.map((todo) => ( - todo.id === action.id ? { ...todo, completed: !todo.completed } : todo - )), + todos: state.todos.map((todo) => + todo.id === action.id + ? { ...todo, completed: !todo.completed } + : todo, + ), }; default: return state; diff --git a/src/createContainer.ts b/src/createContainer.ts index 87401c38..3acb38a6 100644 --- a/src/createContainer.ts +++ b/src/createContainer.ts @@ -27,11 +27,11 @@ type Options = { stateContextName?: string; updateContextName?: string; concurrentMode?: boolean; -} +}; /** * [Deprecated] Please use object option */ -type DeprecatedOption = boolean +type DeprecatedOption = boolean; export const createContainer = ( useValue: (props: Props) => readonly [State, Update], @@ -39,7 +39,9 @@ export const createContainer = ( ) => { if (typeof options === 'boolean') { // eslint-disable-next-line no-console - console.warn('boolean option is deprecated, please specify { concurrentMode: true }'); + console.warn( + 'boolean option is deprecated, please specify { concurrentMode: true }', + ); options = { concurrentMode: options }; } const { @@ -48,7 +50,9 @@ export const createContainer = ( concurrentMode, } = options || {}; const StateContext = createContext(options?.defaultState); - const UpdateContext = createContextOrig(options?.defaultUpdate); + const UpdateContext = createContextOrig( + options?.defaultUpdate, + ); StateContext.displayName = stateContextName; UpdateContext.displayName = updateContextName; @@ -57,19 +61,18 @@ export const createContainer = ( return createElement( UpdateContext.Provider, { value: update }, - createElement(StateContext.Provider as ComponentType<{ - value: State; - }>, { value: state }, props.children), + createElement( + StateContext.Provider as ComponentType<{ + value: State; + }>, + { value: state }, + props.children, + ), ); }; - const useSelector = ( - selector: (state: State) => Selected, - ) => { - if ( - typeof process === 'object' - && process.env.NODE_ENV !== 'production' - ) { + const useSelector = (selector: (state: State) => Selected) => { + if (typeof process === 'object' && process.env.NODE_ENV !== 'production') { const selectorOrig = selector; selector = (state: State) => { if (state === undefined) { @@ -78,7 +81,10 @@ export const createContainer = ( return selectorOrig(state); }; } - const selected = useContextSelector(StateContext as Context, selector); + const selected = useContextSelector( + StateContext as Context, + selector, + ); useDebugValue(selected); return selected; }; @@ -87,39 +93,45 @@ export const createContainer = ( const useUpdate = concurrentMode ? () => { - if ( - typeof process === 'object' - && process.env.NODE_ENV !== 'production' - && useContextOrig(UpdateContext) === undefined - ) { - throw new Error('Please use '); - } - const contextUpdate = useContextUpdate(StateContext as Context); - const update = useContextOrig(UpdateContext as ContextOrig); - return useCallback((...args: Parameters) => { - let result: ReturnType | undefined; - contextUpdate(() => { - result = update(...args); - }); - return result as ReturnType; - }, [contextUpdate, update]); - } - // not concurrentMode - : () => { - if ( - typeof process === 'object' - && process.env.NODE_ENV !== 'production' - && useContextOrig(UpdateContext) === undefined - ) { - throw new Error('Please use '); + if ( + typeof process === 'object' && + process.env.NODE_ENV !== 'production' && + useContextOrig(UpdateContext) === undefined + ) { + throw new Error('Please use '); + } + const contextUpdate = useContextUpdate( + StateContext as Context, + ); + const update = useContextOrig(UpdateContext as ContextOrig); + return useCallback( + (...args: Parameters) => { + let result: ReturnType | undefined; + contextUpdate(() => { + result = update(...args); + }); + return result as ReturnType; + }, + [contextUpdate, update], + ); } - return useContextOrig(UpdateContext as ContextOrig); - }; + : // not concurrentMode + () => { + if ( + typeof process === 'object' && + process.env.NODE_ENV !== 'production' && + useContextOrig(UpdateContext) === undefined + ) { + throw new Error('Please use '); + } + return useContextOrig(UpdateContext as ContextOrig); + }; - const useTracked = () => [useTrackedState(), useUpdate()] as [ - ReturnType, - ReturnType, - ]; + const useTracked = () => + [useTrackedState(), useUpdate()] as [ + ReturnType, + ReturnType, + ]; return { Provider, diff --git a/src/createTrackedSelector.ts b/src/createTrackedSelector.ts index c0de0668..f3837200 100644 --- a/src/createTrackedSelector.ts +++ b/src/createTrackedSelector.ts @@ -1,10 +1,4 @@ -import { - useCallback, - useEffect, - useMemo, - useReducer, - useRef, -} from 'react'; +import { useCallback, useEffect, useMemo, useReducer, useRef } from 'react'; import { createProxy, isChanged } from 'proxy-compare'; import { useAffectedDebugValue } from './utils'; @@ -19,34 +13,30 @@ export const createTrackedSelector = ( const prevState = useRef(); const lastState = useRef(); useEffect(() => { - if (prevState.current !== lastState.current - && isChanged( - prevState.current, - lastState.current, - affected, - new WeakMap(), - )) { + if ( + prevState.current !== lastState.current && + isChanged(prevState.current, lastState.current, affected, new WeakMap()) + ) { prevState.current = lastState.current; forceUpdate(); } }); - const selector = useCallback((nextState: State) => { - lastState.current = nextState; - if (prevState.current - && prevState.current !== nextState - && !isChanged( - prevState.current, - nextState, - affected, - new WeakMap(), - ) - ) { - // not changed - return prevState.current; - } - prevState.current = nextState; - return nextState; - }, [affected]); + const selector = useCallback( + (nextState: State) => { + lastState.current = nextState; + if ( + prevState.current && + prevState.current !== nextState && + !isChanged(prevState.current, nextState, affected, new WeakMap()) + ) { + // not changed + return prevState.current; + } + prevState.current = nextState; + return nextState; + }, + [affected], + ); const state = useSelector(selector); if (typeof process === 'object' && process.env.NODE_ENV !== 'production') { // eslint-disable-next-line react-hooks/rules-of-hooks diff --git a/tests/01_basic.spec.tsx b/tests/01_basic.spec.tsx index c567e3d9..9682de25 100644 --- a/tests/01_basic.spec.tsx +++ b/tests/01_basic.spec.tsx @@ -27,7 +27,9 @@ describe('basic spec', () => { return (
{state.count1} - +
); }; diff --git a/tests/e2e/01_minimal.ts b/tests/e2e/01_minimal.ts index 5c9fc2fa..10b07afc 100644 --- a/tests/e2e/01_minimal.ts +++ b/tests/e2e/01_minimal.ts @@ -10,66 +10,146 @@ describe('01_minimal', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(5) > div > input'); await page.click('body > #app > div:nth-child(5) > div > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(5) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(5) > div > input', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(5) > div > input', '3'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/02_typescript.ts b/tests/e2e/02_typescript.ts index b87c2f5a..0d7745bc 100644 --- a/tests/e2e/02_typescript.ts +++ b/tests/e2e/02_typescript.ts @@ -10,68 +10,167 @@ describe('02_typescript', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('#app > div:nth-child(5) > div > div > button:nth-child(2)'); - await page.click('#app > div:nth-child(5) > div > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('#app > div:nth-child(5) > div > div > button:nth-child(2)'); - await page.click('#app > div:nth-child(5) > div > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('#app > div:nth-child(5) > div > div > button:nth-child(3)'); - await page.click('#app > div:nth-child(5) > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('#app > div:nth-child(5) > div > div > button:nth-child(3)'); - await page.click('#app > div:nth-child(5) > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div:nth-child(2) > input'); - await page.click('body > #app > div:nth-child(5) > div:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'c'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', 'd'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', 'e'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', 'f'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(4) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(4) > input', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(4) > input', '3'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + '#app > div:nth-child(5) > div > div > button:nth-child(2)', + ); + await page.click( + '#app > div:nth-child(5) > div > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + '#app > div:nth-child(5) > div > div > button:nth-child(2)', + ); + await page.click( + '#app > div:nth-child(5) > div > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + '#app > div:nth-child(5) > div > div > button:nth-child(3)', + ); + await page.click( + '#app > div:nth-child(5) > div > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + '#app > div:nth-child(5) > div > div > button:nth-child(3)', + ); + await page.click( + '#app > div:nth-child(5) > div > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + ); + await page.click( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'c', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + 'd', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + 'e', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + 'f', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(4) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(4) > input', + '2', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(4) > input', + '3', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/03_usestate.ts b/tests/e2e/03_usestate.ts index 201236be..25e6560d 100644 --- a/tests/e2e/03_usestate.ts +++ b/tests/e2e/03_usestate.ts @@ -12,54 +12,115 @@ describe('03_usestate', () => { await page.waitForSelector('body > #app > div:nth-child(2) > div > button'); await page.click('body > #app > div:nth-child(2) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(2) > div > button'); await page.click('body > #app > div:nth-child(2) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(3) > div > button'); await page.click('body > #app > div:nth-child(3) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(3) > div > button'); await page.click('body > #app > div:nth-child(3) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(3) > div > button'); await page.click('body > #app > div:nth-child(3) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - await page.click('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + await page.click( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/04_selector.ts b/tests/e2e/04_selector.ts index 0e6d0c26..dd028a70 100644 --- a/tests/e2e/04_selector.ts +++ b/tests/e2e/04_selector.ts @@ -10,52 +10,127 @@ describe('04_selector', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - await page.click('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(2) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + await page.click( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(2) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(3) > input', + '1', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/05_container.ts b/tests/e2e/05_container.ts index c733a4f5..665c540a 100644 --- a/tests/e2e/05_container.ts +++ b/tests/e2e/05_container.ts @@ -10,85 +10,205 @@ describe('05_container', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(3) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(5) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(5) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(5) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(6) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(3) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(5) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(5) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(5) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(6) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/06_customhook.ts b/tests/e2e/06_customhook.ts index e098ca36..1ab475b6 100644 --- a/tests/e2e/06_customhook.ts +++ b/tests/e2e/06_customhook.ts @@ -10,37 +10,69 @@ describe('06_customhook', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(1) > button:nth-child(2)'); + await page.waitForSelector( + 'body > #app > div:nth-child(1) > button:nth-child(2)', + ); await page.click('body > #app > div:nth-child(1) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(1) > button:nth-child(2)'); + await page.waitForSelector( + 'body > #app > div:nth-child(1) > button:nth-child(2)', + ); await page.click('body > #app > div:nth-child(1) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(1) > button:nth-child(3)'); + await page.waitForSelector( + 'body > #app > div:nth-child(1) > button:nth-child(3)', + ); await page.click('body > #app > div:nth-child(1) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(1) > button:nth-child(3)'); + await page.waitForSelector( + 'body > #app > div:nth-child(1) > button:nth-child(3)', + ); await page.click('body > #app > div:nth-child(1) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(2) > button:nth-child(2)'); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > button:nth-child(2)', + ); await page.click('body > #app > div:nth-child(2) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(2) > button:nth-child(2)'); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > button:nth-child(2)', + ); await page.click('body > #app > div:nth-child(2) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(2) > button:nth-child(3)'); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > button:nth-child(3)', + ); await page.click('body > #app > div:nth-child(2) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > div:nth-child(2) > button:nth-child(3)'); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > button:nth-child(3)', + ); await page.click('body > #app > div:nth-child(2) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/07_todolist.ts b/tests/e2e/07_todolist.ts index 014b3b01..b33986a6 100644 --- a/tests/e2e/07_todolist.ts +++ b/tests/e2e/07_todolist.ts @@ -12,106 +12,162 @@ describe('07_todolist', () => { await page.waitForSelector('#app > div > div > form > input'); await page.click('#app > div > div > form > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > div > div > form > button'); await page.click('#app > div > div > form > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > div > div > form > input'); await page.click('#app > div > div > form > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > div > div > form > button'); await page.click('#app > div > div > form > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > div > div > form > input'); await page.click('#app > div > div > form > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'c'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'c'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > div > div > form > input', 'c'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > div > div > form > button'); await page.click('#app > div > div > form > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(4)'); await page.click('body > #app > div > div > button:nth-child(4)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(2)'); await page.click('body > #app > div > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > ul > li:nth-child(2)'); await page.click('body > #app > div > ul > li:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(4)'); await page.click('body > #app > div > div > button:nth-child(4)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(2)'); await page.click('body > #app > div > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > ul > li:nth-child(3)'); await page.click('body > #app > div > ul > li:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(4)'); await page.click('body > #app > div > div > button:nth-child(4)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > ul > li:nth-child(1)'); await page.click('body > #app > div > ul > li:nth-child(1)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(2)'); await page.click('body > #app > div > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/08_comparison.ts b/tests/e2e/08_comparison.ts index 0cfc5610..df133876 100644 --- a/tests/e2e/08_comparison.ts +++ b/tests/e2e/08_comparison.ts @@ -12,37 +12,59 @@ describe('08_comparison', () => { await page.waitForSelector('body > #app > div:nth-child(2) > input'); await page.click('body > #app > div:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(2) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(3) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(5) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(6) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(8) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(9) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(11) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(12) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(14) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(15) > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/09_reactmemo.ts b/tests/e2e/09_reactmemo.ts index 13477f4e..00bd3a64 100644 --- a/tests/e2e/09_reactmemo.ts +++ b/tests/e2e/09_reactmemo.ts @@ -12,27 +12,39 @@ describe('09_reactmemo', () => { await page.waitForSelector('body > #app > ul > li:nth-child(1) > input'); await page.click('body > #app > ul > li:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(2) > input'); await page.click('body > #app > ul > li:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(3) > input'); await page.click('body > #app > ul > li:nth-child(3) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(1) > input'); await page.click('body > #app > ul > li:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(2) > input'); await page.click('body > #app > ul > li:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(3) > input'); await page.click('body > #app > ul > li:nth-child(3) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/10_untracked.ts b/tests/e2e/10_untracked.ts index 2dab8275..fa9ede3e 100644 --- a/tests/e2e/10_untracked.ts +++ b/tests/e2e/10_untracked.ts @@ -10,47 +10,99 @@ describe('10_untracked', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > ul > li:nth-child(2) > input:nth-child(2)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(2) > input:nth-child(2)', + ); await page.click('body > #app > ul > li:nth-child(2) > input:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.type('body > #app > ul > li:nth-child(2) > input:nth-child(2)', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.type( + 'body > #app > ul > li:nth-child(2) > input:nth-child(2)', + '2', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(3) > input:nth-child(2)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(3) > input:nth-child(2)', + ); await page.click('body > #app > ul > li:nth-child(3) > input:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.type('body > #app > ul > li:nth-child(3) > input:nth-child(2)', '3'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.type( + 'body > #app > ul > li:nth-child(3) > input:nth-child(2)', + '3', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(2) > input:nth-child(1)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(2) > input:nth-child(1)', + ); await page.click('body > #app > ul > li:nth-child(2) > input:nth-child(1)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(3) > input:nth-child(1)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(3) > input:nth-child(1)', + ); await page.click('body > #app > ul > li:nth-child(3) > input:nth-child(1)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(1) > input:nth-child(1)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(1) > input:nth-child(1)', + ); await page.click('body > #app > ul > li:nth-child(1) > input:nth-child(1)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(2) > button:nth-child(4)'); - await page.click('body > #app > ul > li:nth-child(2) > button:nth-child(4)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(2) > button:nth-child(4)', + ); + await page.click( + 'body > #app > ul > li:nth-child(2) > button:nth-child(4)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(3) > button:nth-child(3)'); - await page.click('body > #app > ul > li:nth-child(3) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(3) > button:nth-child(3)', + ); + await page.click( + 'body > #app > ul > li:nth-child(3) > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(3) > input:nth-child(1)'); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(3) > input:nth-child(1)', + ); await page.click('body > #app > ul > li:nth-child(3) > input:nth-child(1)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); - await page.waitForSelector('body > #app > ul > li:nth-child(2) > button:nth-child(3)'); - await page.click('body > #app > ul > li:nth-child(2) > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > ul > li:nth-child(2) > button:nth-child(3)', + ); + await page.click( + 'body > #app > ul > li:nth-child(2) > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/11_form.ts b/tests/e2e/11_form.ts index fddb4f6f..19948b52 100644 --- a/tests/e2e/11_form.ts +++ b/tests/e2e/11_form.ts @@ -12,40 +12,62 @@ describe('11_form', () => { await page.waitForSelector('#app > form > div:nth-child(3) > div > input'); await page.click('#app > form > div:nth-child(3) > div > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(3) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(3) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(3) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(5) > div > input', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(5) > div > input', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('#app > form > div:nth-child(5) > div > input', '2'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > form > div > div > select'); await page.click('#app > form > div > div > select'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.select('#app > form > div > div > select', 'male'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('#app > form > div:nth-child(9) > div > input'); await page.click('#app > form > div:nth-child(9) > div > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > form > button'); await page.click('body > #app > form > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/12_async.ts b/tests/e2e/12_async.ts index 3daeade9..a25ab707 100644 --- a/tests/e2e/12_async.ts +++ b/tests/e2e/12_async.ts @@ -5,9 +5,10 @@ jest.setTimeout(15 * 1000); // this test is not very stable because of timer describe('12_async', () => { const port = process.env.PORT || '8080'; - const sleep = (ms: number) => new Promise((r) => { - setTimeout(r, ms); - }); + const sleep = (ms: number) => + new Promise((r) => { + setTimeout(r, ms); + }); it('should work with recorded events', async () => { const browser = await puppeteer.launch(); @@ -16,21 +17,35 @@ describe('12_async', () => { await page.waitForSelector('body > #app > div > div:nth-child(3) > button'); await page.click('body > #app > div > div:nth-child(3) > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await sleep(3000); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div > div:nth-child(4) > button:nth-child(2)'); - await page.click('body > #app > div > div:nth-child(4) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div > div:nth-child(4) > button:nth-child(2)', + ); + await page.click( + 'body > #app > div > div:nth-child(4) > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await sleep(1000); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/13_saga.ts b/tests/e2e/13_saga.ts index fccc5083..6c321d62 100644 --- a/tests/e2e/13_saga.ts +++ b/tests/e2e/13_saga.ts @@ -5,9 +5,10 @@ jest.setTimeout(15 * 1000); // this test is not very stable because of timer describe('13_saga', () => { const port = process.env.PORT || '8080'; - const sleep = (ms: number) => new Promise((r) => { - setTimeout(r, ms); - }); + const sleep = (ms: number) => + new Promise((r) => { + setTimeout(r, ms); + }); it('should work with recorded events', async () => { const browser = await puppeteer.launch(); @@ -16,21 +17,35 @@ describe('13_saga', () => { await page.waitForSelector('body > #app > div > div:nth-child(3) > button'); await page.click('body > #app > div > div:nth-child(3) > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await sleep(3000); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div > div:nth-child(4) > button:nth-child(2)'); - await page.click('body > #app > div > div:nth-child(4) > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div > div:nth-child(4) > button:nth-child(2)', + ); + await page.click( + 'body > #app > div > div:nth-child(4) > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div > div > button:nth-child(3)'); await page.click('body > #app > div > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await sleep(1000); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/14_dynamic.ts b/tests/e2e/14_dynamic.ts index 18668826..5a42b181 100644 --- a/tests/e2e/14_dynamic.ts +++ b/tests/e2e/14_dynamic.ts @@ -10,49 +10,95 @@ describe('14_dynamic', () => { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(2)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(2)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(2) > div > input'); await page.click('body > #app > div:nth-child(2) > div > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(2) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - await page.click('body > #app > div:nth-child(2) > div > button:nth-child(3)'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + await page.click( + 'body > #app > div:nth-child(2) > div > button:nth-child(3)', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(3) > div > input'); await page.click('body > #app > div:nth-child(3) > div > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.type('body > #app > div:nth-child(3) > div > input', '1'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - await page.click('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'a'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + await page.click( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'a', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(5) > div > button'); await page.click('body > #app > div:nth-child(5) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.waitForSelector('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - await page.click('body > #app > div:nth-child(5) > div:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); - - await page.type('body > #app > div:nth-child(5) > div:nth-child(1) > input', 'b'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.waitForSelector( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + await page.click( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); + + await page.type( + 'body > #app > div:nth-child(5) > div:nth-child(1) > input', + 'b', + ); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > div:nth-child(6) > div > button'); await page.click('body > #app > div:nth-child(6) > div > button'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/tests/e2e/15_reactmemoref.ts b/tests/e2e/15_reactmemoref.ts index 929141ed..aaa86c84 100644 --- a/tests/e2e/15_reactmemoref.ts +++ b/tests/e2e/15_reactmemoref.ts @@ -12,27 +12,39 @@ describe('15_reactmemoref', () => { await page.waitForSelector('body > #app > ul > li:nth-child(1) > input'); await page.click('body > #app > ul > li:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(2) > input'); await page.click('body > #app > ul > li:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(3) > input'); await page.click('body > #app > ul > li:nth-child(3) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(1) > input'); await page.click('body > #app > ul > li:nth-child(1) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(2) > input'); await page.click('body > #app > ul > li:nth-child(2) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await page.waitForSelector('body > #app > ul > li:nth-child(3) > input'); await page.click('body > #app > ul > li:nth-child(3) > input'); - expect(await page.evaluate(() => document.body.innerHTML)).toMatchSnapshot(); + expect( + await page.evaluate(() => document.body.innerHTML), + ).toMatchSnapshot(); await browser.close(); }); diff --git a/website/custom_modules/docusaurus-remark-plugin-ts2js/src/index.js b/website/custom_modules/docusaurus-remark-plugin-ts2js/src/index.js index 4199be76..f69407ef 100644 --- a/website/custom_modules/docusaurus-remark-plugin-ts2js/src/index.js +++ b/website/custom_modules/docusaurus-remark-plugin-ts2js/src/index.js @@ -18,12 +18,13 @@ const stripTypes = (origCode) => { return code.replace(/\r/g, '').replace(/\n\/\/--EMPTYLINE--\n/g, '\n\n'); }; -const format = (code) => prettier.format(code, { - parser: 'typescript', - plugins: [parserTypescript, prettierPluginEstree], - singleQuote: true, - trailingComma: 'all', -}); +const format = (code) => + prettier.format(code, { + parser: 'typescript', + plugins: [parserTypescript, prettierPluginEstree], + singleQuote: true, + trailingComma: 'all', + }); const uniqueId = 'UsedByRemarkPluginTs2Js'; // should this be configurable? maybe unnecessary. @@ -39,9 +40,10 @@ const matchNode = (node) => node.type === 'code' && node.meta === 'ts2js'; const transformNode = (node) => { const jscode = format(stripTypes(node.value)); const tscode = format(node.value); - return [{ - type: 'jsx', - value: ` { ]} > `, - }, { - type: node.type, - lang: 'javascript', - value: jscode, - }, { - type: 'jsx', - value: ` + }, + { + type: node.type, + lang: 'javascript', + value: jscode, + }, + { + type: 'jsx', + value: ` `, - }, { - type: node.type, - lang: 'typescript', - value: tscode, - }, { - type: 'jsx', - value: ` + }, + { + type: node.type, + lang: 'typescript', + value: tscode, + }, + { + type: 'jsx', + value: ` `, - }]; + }, + ]; }; module.exports = () => { diff --git a/website/docs/api.md b/website/docs/api.md index 0c65cdb6..aab10242 100644 --- a/website/docs/api.md +++ b/website/docs/api.md @@ -52,7 +52,7 @@ type Options = { stateContextName?: string; updateContextName?: string; concurrentMode?: boolean; -} +}; ``` - `defaultState` and `defaultUpdate` are to specify context default values in case you want something without Provider. @@ -83,11 +83,7 @@ Typically, it's close to the root component, but it can be (sometimes desirably) lower in the component tree. ```javascript -const App = (props) => ( - - ... - -); +const App = (props) => ...; ``` ### useTracked diff --git a/website/docs/quick-start.md b/website/docs/quick-start.md index 415a9652..eef5f9a1 100644 --- a/website/docs/quick-start.md +++ b/website/docs/quick-start.md @@ -166,10 +166,8 @@ const initialState = { const useMyState = () => useState(initialState); -export const { - Provider: SharedStateProvider, - useTracked: useSharedState, -} = createContainer(useMyState); +export const { Provider: SharedStateProvider, useTracked: useSharedState } = + createContainer(useMyState); ``` That's it. Check the running app and see it works as before. diff --git a/website/docs/recipes.md b/website/docs/recipes.md index 91bb0098..e5bf31d9 100644 --- a/website/docs/recipes.md +++ b/website/docs/recipes.md @@ -151,7 +151,8 @@ you can sync a container state with a state from props. ```javascript const useValue = ({ propState }) => { const [state, setState] = useState(propState); - useEffect(() => { // or useLayoutEffect + useEffect(() => { + // or useLayoutEffect setState(propState); }, [propState]); return [state, setState]; @@ -163,11 +164,7 @@ const { // ... } = createContainer(useValue); -const App = ({ propState }) => ( - - ... - -); +const App = ({ propState }) => ...; ``` Note that `propState` has to be updated immutably. @@ -223,24 +220,25 @@ const useValue = () => { const [count, setCount] = useState(0); const increment = useCallback(() => setCount((c) => c + 1), []); const decrement = useCallback(() => setCount((c) => c - 1), []); - const state = useMemo(() => ({ - count, - increment, - decrement, - }), [count, increment, decrement]); - return [state, () => { throw new Error('use functions in the state') }]; + const state = useMemo( + () => ({ + count, + increment, + decrement, + }), + [count, increment, decrement], + ); + return [ + state, + () => { + throw new Error('use functions in the state'); + }, + ]; }; -const { - Provider, - useTrackedState, -} = createContainer(useValue); +const { Provider, useTrackedState } = createContainer(useValue); -const App = () => ( - - ... - -); +const App = () => ...; ``` Note: With custom update functions, you don't get the benefit @@ -257,7 +255,7 @@ Selector interface is useful to share selection logic. You can create a selector hook with state usage tracking very easily. ```javascript -const useSelectorWithTracking = selector => selector(useTrackedState()); +const useSelectorWithTracking = (selector) => selector(useTrackedState()); ``` Note: This is different from `useSelector` which has no tracking support @@ -271,12 +269,15 @@ Here's a custom hook to return a tuple `[value, setValue]` selected by a name. ```javascript const useTrackedByName = (name) => { const [state, setState] = useTracked(); - const update = useCallback((newVal) => { - setState(oldVal => ({ - ...oldVal, - [name]: typeof newVal === 'function' ? newVal(oldVal[name]) : newVal, - })); - }, [setState, name]); + const update = useCallback( + (newVal) => { + setState((oldVal) => ({ + ...oldVal, + [name]: typeof newVal === 'function' ? newVal(oldVal[name]) : newVal, + })); + }, + [setState, name], + ); return [state[name], update]; }; ``` @@ -291,9 +292,12 @@ import produce from 'immer'; const useTrackedWithImmer = () => { const [state, setState] = useTracked(); - const update = useCallback((updater) => { - setState(oldVal => produce(oldVal, updater)); - }, [setState]); + const update = useCallback( + (updater) => { + setState((oldVal) => produce(oldVal, updater)); + }, + [setState], + ); return [state, update]; }; ``` @@ -333,8 +337,11 @@ const untrackDeep = (obj) => { const useSafeDispatch = () => { const dispatch = useDispatch(); - return useCallback((action) => { - dispatch(untrackDeep(action)); - }, [dispatch]); + return useCallback( + (action) => { + dispatch(untrackDeep(action)); + }, + [dispatch], + ); }; ``` diff --git a/website/docs/tutorial-01.md b/website/docs/tutorial-01.md index 678424ce..bdeec490 100644 --- a/website/docs/tutorial-01.md +++ b/website/docs/tutorial-01.md @@ -133,7 +133,7 @@ export const useFlasher = () => { if (!ref.current) return; ref.current.setAttribute( 'style', - 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;' + 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;', ); setTimeout(() => { if (!ref.current) return; diff --git a/website/docs/tutorial-02.md b/website/docs/tutorial-02.md index 28c016ba..d6d0fba5 100644 --- a/website/docs/tutorial-02.md +++ b/website/docs/tutorial-02.md @@ -70,13 +70,15 @@ const reducer = (state: State, action: Action): State => { case 'DELETE_TODO': return { ...state, - todos: state.todos.filter(todo => todo.id !== action.id), + todos: state.todos.filter((todo) => todo.id !== action.id), }; case 'TOGGLE_TODO': return { ...state, - todos: state.todos.map(todo => - todo.id === action.id ? { ...todo, completed: !todo.completed } : todo + todos: state.todos.map((todo) => + todo.id === action.id + ? { ...todo, completed: !todo.completed } + : todo, ), }; case 'SET_QUERY': @@ -239,7 +241,7 @@ export const useFlasher = () => { if (!ref.current) return; ref.current.setAttribute( 'style', - 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;' + 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;', ); setTimeout(() => { if (!ref.current) return; diff --git a/website/docs/tutorial-03.md b/website/docs/tutorial-03.md index 9a3b3dc4..7366af86 100644 --- a/website/docs/tutorial-03.md +++ b/website/docs/tutorial-03.md @@ -55,9 +55,11 @@ const initialState: State = { const useValue = () => useState(initialState); -const { Provider, useTrackedState, useUpdate: useSetState } = createContainer( - useValue -); +const { + Provider, + useTrackedState, + useUpdate: useSetState, +} = createContainer(useValue); const useSetDraft = () => { const setState = useSetState(); @@ -65,7 +67,7 @@ const useSetDraft = () => { (draftUpdater: (draft: Draft) => void) => { setState(produce(draftUpdater)); }, - [setState] + [setState], ); }; @@ -101,12 +103,12 @@ let nextId = 100; export const useAddTodo = () => { const setDraft = useSetDraft(); return useCallback( - title => { - setDraft(draft => { + (title) => { + setDraft((draft) => { draft.todos.push({ id: nextId++, title }); }); }, - [setDraft] + [setDraft], ); }; ``` @@ -124,12 +126,12 @@ export const useDeleteTodo = () => { const setDraft = useSetDraft(); return useCallback( (id: number) => { - setDraft(draft => { - const index = draft.todos.findIndex(todo => todo.id === id); + setDraft((draft) => { + const index = draft.todos.findIndex((todo) => todo.id === id); if (index >= 0) draft.todos.splice(index, 1); }); }, - [setDraft] + [setDraft], ); }; ``` @@ -147,12 +149,12 @@ export const useToggleTodo = () => { const setDraft = useSetDraft(); return useCallback( (id: number) => { - setDraft(draft => { - const todo = draft.todos.find(todo => todo.id === id); + setDraft((draft) => { + const todo = draft.todos.find((todo) => todo.id === id); if (todo) todo.completed = !todo.completed; }); }, - [setDraft] + [setDraft], ); }; ``` @@ -172,11 +174,11 @@ export const useQuery = () => { const setDraft = useSetDraft(); const setQuery = useCallback( (query: string) => { - setDraft(draft => { + setDraft((draft) => { draft.query = query; }); }, - [setDraft] + [setDraft], ); return { getQuery, setQuery }; }; @@ -328,7 +330,7 @@ export const useFlasher = () => { if (ref.current) { ref.current.setAttribute( 'style', - 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;' + 'box-shadow: 0 0 2px 1px red; transition: box-shadow 100ms ease-out;', ); } const timeOutId = setTimeout(() => { diff --git a/website/docs/tutorial-04.md b/website/docs/tutorial-04.md index f9316ac0..8974e814 100644 --- a/website/docs/tutorial-04.md +++ b/website/docs/tutorial-04.md @@ -87,7 +87,7 @@ const reducer: Reducer = (state, action) => { const { [action.id]: _removed, ...rest } = state.todoMap; return { ...state, - todoIds: state.todoIds.filter(id => id !== action.id), + todoIds: state.todoIds.filter((id) => id !== action.id), todoMap: rest, pending: false, }; @@ -118,67 +118,73 @@ const asyncActionHandlers: AsyncActionHandlers< Reducer, AsyncAction > = { - CREATE_TODO: ({ dispatch }) => async action => { - try { - dispatch({ type: 'STARTED' }); - const response = await fetch(`https://reqres.in/api/todos?delay=1`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ title: action.title }), - }); - const data = await response.json(); - if (typeof data.id !== 'string') throw new Error('no id'); - if (typeof data.title !== 'string') throw new Error('no title'); - dispatch({ type: 'TODO_CREATED', todo: data }); - } catch (error) { - dispatch({ type: 'FAILED', error }); - } - }, - TOGGLE_TODO: ({ dispatch, getState }) => async action => { - try { - dispatch({ type: 'STARTED' }); - const todo = getState().todoMap[action.id]; - const body = { - ...todo, - completed: !todo.completed, - }; - const response = await fetch( - `https://reqres.in/api/todos/${action.id}?delay=1`, - { - method: 'PUT', + CREATE_TODO: + ({ dispatch }) => + async (action) => { + try { + dispatch({ type: 'STARTED' }); + const response = await fetch(`https://reqres.in/api/todos?delay=1`, { + method: 'POST', headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify(body), - } - ); - const data = await response.json(); - if (typeof data.title !== 'string') throw new Error('no title'); - dispatch({ type: 'TODO_UPDATED', todo: { ...data, id: action.id } }); - } catch (error) { - dispatch({ type: 'FAILED', error }); - } - }, - DELETE_TODO: ({ dispatch } )=> async action => { - try { - dispatch({ type: 'STARTED' }); - await fetch(`https://reqres.in/api/todos/${action.id}?delay=1`, { - method: 'DELETE', - }); - dispatch({ type: 'TODO_DELETED', id: action.id }); - } catch (error) { - dispatch({ type: 'FAILED', error }); - } - }, + body: JSON.stringify({ title: action.title }), + }); + const data = await response.json(); + if (typeof data.id !== 'string') throw new Error('no id'); + if (typeof data.title !== 'string') throw new Error('no title'); + dispatch({ type: 'TODO_CREATED', todo: data }); + } catch (error) { + dispatch({ type: 'FAILED', error }); + } + }, + TOGGLE_TODO: + ({ dispatch, getState }) => + async (action) => { + try { + dispatch({ type: 'STARTED' }); + const todo = getState().todoMap[action.id]; + const body = { + ...todo, + completed: !todo.completed, + }; + const response = await fetch( + `https://reqres.in/api/todos/${action.id}?delay=1`, + { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(body), + }, + ); + const data = await response.json(); + if (typeof data.title !== 'string') throw new Error('no title'); + dispatch({ type: 'TODO_UPDATED', todo: { ...data, id: action.id } }); + } catch (error) { + dispatch({ type: 'FAILED', error }); + } + }, + DELETE_TODO: + ({ dispatch }) => + async (action) => { + try { + dispatch({ type: 'STARTED' }); + await fetch(`https://reqres.in/api/todos/${action.id}?delay=1`, { + method: 'DELETE', + }); + dispatch({ type: 'TODO_DELETED', id: action.id }); + } catch (error) { + dispatch({ type: 'FAILED', error }); + } + }, }; const useValue = () => useReducerAsync, AsyncAction>( reducer, initialState, - asyncActionHandlers + asyncActionHandlers, ); export const { diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 182de343..4d04b2f5 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -2,16 +2,15 @@ module.exports = { title: 'React Tracked', - tagline: 'State usage tracking with Proxies. Optimize re-renders for useState/useReducer, React Redux, Zustand and others.', + tagline: + 'State usage tracking with Proxies. Optimize re-renders for useState/useReducer, React Redux, Zustand and others.', organizationName: 'dai-shi', projectName: 'react-tracked', baseUrl: '/', url: 'https://react-tracked.js.org', favicon: 'img/favicon.ico', trailingSlash: true, - themes: [ - '@docusaurus/theme-live-codeblock', - ], + themes: ['@docusaurus/theme-live-codeblock'], plugins: [], presets: [ [ diff --git a/website/sidebars.js b/website/sidebars.js index 545a366a..9b4ada09 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -1,27 +1,14 @@ module.exports = { docs: { - 'Getting Started': [ - 'introduction', - 'quick-start', - 'comparison', - ], + 'Getting Started': ['introduction', 'quick-start', 'comparison'], 'Tutorial with createContainer': [ 'tutorial-01', 'tutorial-02', 'tutorial-03', 'tutorial-04', ], - 'Tutorial with react-redux': [ - 'tutorial-redux-01', - ], - 'Tutorial with zustand': [ - 'tutorial-zustand-01', - ], - Reference: [ - 'api', - 'recipes', - 'debugging', - 'caveats', - ], + 'Tutorial with react-redux': ['tutorial-redux-01'], + 'Tutorial with zustand': ['tutorial-zustand-01'], + Reference: ['api', 'recipes', 'debugging', 'caveats'], }, }; diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 00c331ab..fff48ecd 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -11,15 +11,13 @@ const Home = () => { const { siteConfig = {} } = useDocusaurusContext(); return ( - -
+
React Tracked Logo { />

{siteConfig.title}

{siteConfig.tagline}
-
- - Getting Started - + Getting Started
From 874d90cad351a551ccf62bdd6e0979cefa018660 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 21:43:13 +0900 Subject: [PATCH 03/25] fix spec test --- tests/01_basic.spec.tsx | 7 +++---- .../{01_basic_spec.tsx.snap => 01_basic.spec.tsx.snap} | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) rename tests/__snapshots__/{01_basic_spec.tsx.snap => 01_basic.spec.tsx.snap} (74%) diff --git a/tests/01_basic.spec.tsx b/tests/01_basic.spec.tsx index 9682de25..a0981394 100644 --- a/tests/01_basic.spec.tsx +++ b/tests/01_basic.spec.tsx @@ -1,8 +1,7 @@ -import React, { useReducer, StrictMode } from 'react'; - +import { afterEach, describe, expect, it } from 'vitest'; import { render, fireEvent, cleanup } from '@testing-library/react'; - -import { createContainer } from '../src/index'; +import { useReducer, StrictMode } from 'react'; +import { createContainer } from 'react-tracked'; describe('basic spec', () => { afterEach(cleanup); diff --git a/tests/__snapshots__/01_basic_spec.tsx.snap b/tests/__snapshots__/01_basic.spec.tsx.snap similarity index 74% rename from tests/__snapshots__/01_basic_spec.tsx.snap rename to tests/__snapshots__/01_basic.spec.tsx.snap index 3efe856e..d3c86432 100644 --- a/tests/__snapshots__/01_basic_spec.tsx.snap +++ b/tests/__snapshots__/01_basic.spec.tsx.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`basic spec create a component 1`] = ` +exports[`basic spec > create a component 1`] = `
@@ -25,7 +25,7 @@ exports[`basic spec create a component 1`] = `
`; -exports[`basic spec create a component 2`] = ` +exports[`basic spec > create a component 2`] = `
From b929851aa97c3e57ad13c426e0662e57e0281f6e Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:00:24 +0900 Subject: [PATCH 04/25] ex 01 --- examples/01_counter/package.json | 21 +++++++++++++++ .../public/index.html | 2 +- .../src/index.js => 01_counter/src/app.tsx} | 27 ++++++++++++------- examples/01_counter/src/index.tsx | 13 +++++++++ examples/01_minimal/package.json | 23 ---------------- .../{02_typescript => 02_person}/package.json | 0 .../public/index.html | 0 .../{02_typescript => 02_person}/src/App.tsx | 0 .../src/Counter.tsx | 0 .../src/Person.tsx | 0 .../{02_typescript => 02_person}/src/index.ts | 0 .../{02_typescript => 02_person}/src/state.ts | 0 package.json | 2 +- src/createContainer.ts | 12 ++++++--- 14 files changed, 61 insertions(+), 39 deletions(-) create mode 100644 examples/01_counter/package.json rename examples/{02_typescript => 01_counter}/public/index.html (65%) rename examples/{01_minimal/src/index.js => 01_counter/src/app.tsx} (75%) create mode 100644 examples/01_counter/src/index.tsx delete mode 100644 examples/01_minimal/package.json rename examples/{02_typescript => 02_person}/package.json (100%) rename examples/{01_minimal => 02_person}/public/index.html (100%) rename examples/{02_typescript => 02_person}/src/App.tsx (100%) rename examples/{02_typescript => 02_person}/src/Counter.tsx (100%) rename examples/{02_typescript => 02_person}/src/Person.tsx (100%) rename examples/{02_typescript => 02_person}/src/index.ts (100%) rename examples/{02_typescript => 02_person}/src/state.ts (100%) diff --git a/examples/01_counter/package.json b/examples/01_counter/package.json new file mode 100644 index 00000000..bba01aef --- /dev/null +++ b/examples/01_counter/package.json @@ -0,0 +1,21 @@ +{ + "name": "example", + "version": "0.0.0", + "private": true, + "type": "commonjs", + "dependencies": { + "@types/react": "latest", + "@types/react-dom": "latest", + "react": "latest", + "react-dom": "latest", + "react-scripts": "latest", + "react-tracked": "latest", + "typescript": "latest" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + } +} diff --git a/examples/02_typescript/public/index.html b/examples/01_counter/public/index.html similarity index 65% rename from examples/02_typescript/public/index.html rename to examples/01_counter/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/02_typescript/public/index.html +++ b/examples/01_counter/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/01_minimal/src/index.js b/examples/01_counter/src/app.tsx similarity index 75% rename from examples/01_minimal/src/index.js rename to examples/01_counter/src/app.tsx index 854ab0c7..fd48f091 100644 --- a/examples/01_minimal/src/index.js +++ b/examples/01_counter/src/app.tsx @@ -1,18 +1,21 @@ -import React, { useReducer, StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; +import { useReducer, StrictMode } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; -const useValue = ({ reducer, initialState }) => - useReducer(reducer, initialState); -const { Provider, useTracked } = createContainer(useValue); - const initialState = { count: 0, text: 'hello', }; -const reducer = (state, action) => { +type State = typeof initialState; + +type Action = + | { type: 'increment' } + | { type: 'decrement' } + | { type: 'setText'; text: string } + +const reducer: Reducer = (state, action) => { switch (action.type) { case 'increment': return { ...state, count: state.count + 1 }; @@ -21,10 +24,14 @@ const reducer = (state, action) => { case 'setText': return { ...state, text: action.text }; default: - throw new Error(`unknown action type: ${action.type}`); + throw new Error(`unknown action type: ${(action as Action).type}`); } }; +const useValue = () => useReducer(reducer, initialState); + +const { Provider, useTracked } = createContainer(useValue); + let numRendered = 0; const Counter = () => { @@ -65,7 +72,7 @@ const TextBox = () => { const App = () => ( - +

Counter

@@ -76,4 +83,4 @@ const App = () => (
); -createRoot(document.getElementById('app')).render(); +export default App; diff --git a/examples/01_counter/src/index.tsx b/examples/01_counter/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/01_counter/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/01_minimal/package.json b/examples/01_minimal/package.json deleted file mode 100644 index 1124f045..00000000 --- a/examples/01_minimal/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "react-tracked-example", - "version": "0.1.0", - "private": true, - "dependencies": { - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", - "react-scripts": "latest" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] -} diff --git a/examples/02_typescript/package.json b/examples/02_person/package.json similarity index 100% rename from examples/02_typescript/package.json rename to examples/02_person/package.json diff --git a/examples/01_minimal/public/index.html b/examples/02_person/public/index.html similarity index 100% rename from examples/01_minimal/public/index.html rename to examples/02_person/public/index.html diff --git a/examples/02_typescript/src/App.tsx b/examples/02_person/src/App.tsx similarity index 100% rename from examples/02_typescript/src/App.tsx rename to examples/02_person/src/App.tsx diff --git a/examples/02_typescript/src/Counter.tsx b/examples/02_person/src/Counter.tsx similarity index 100% rename from examples/02_typescript/src/Counter.tsx rename to examples/02_person/src/Counter.tsx diff --git a/examples/02_typescript/src/Person.tsx b/examples/02_person/src/Person.tsx similarity index 100% rename from examples/02_typescript/src/Person.tsx rename to examples/02_person/src/Person.tsx diff --git a/examples/02_typescript/src/index.ts b/examples/02_person/src/index.ts similarity index 100% rename from examples/02_typescript/src/index.ts rename to examples/02_person/src/index.ts diff --git a/examples/02_typescript/src/state.ts b/examples/02_person/src/state.ts similarity index 100% rename from examples/02_typescript/src/state.ts rename to examples/02_person/src/state.ts diff --git a/package.json b/package.json index 3c56b956..222c327b 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "test:spec": "vitest run", "text:e2e": "echo 'TODO'", "examples:01_counter": "DIR=01_counter vite", - "examples:02_typescript": "DIR=02_typescript vite", + "examples:02_person": "DIR=02_person vite", "examples:03_usestate": "DIR=03_usestate vite", "examples:04_selector": "DIR=04_selector vite", "examples:05_container": "DIR=05_container vite", diff --git a/src/createContainer.ts b/src/createContainer.ts index 3acb38a6..98a63357 100644 --- a/src/createContainer.ts +++ b/src/createContainer.ts @@ -1,22 +1,26 @@ /* eslint react/destructuring-assignment: off */ import { - ComponentType, - Context as ContextOrig, - ReactNode, createContext as createContextOrig, createElement, useCallback, useContext as useContextOrig, useDebugValue, } from 'react'; +import type { + ComponentType, + Context as ContextOrig, + ReactNode, +} from 'react'; import { - Context, createContext, useContextSelector, useContextUpdate, } from 'use-context-selector'; +import type { + Context, +} from 'use-context-selector'; import { createTrackedSelector } from './createTrackedSelector'; From 84ad0c1fc6a342c27b516c8e38f34b9e38fd8b18 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:03:56 +0900 Subject: [PATCH 05/25] ex 02 --- examples/02_person/package.json | 19 +++++++------------ examples/02_person/public/index.html | 2 +- examples/02_person/src/{App.tsx => app.tsx} | 6 +++--- .../src/{Counter.tsx => counter.tsx} | 2 -- examples/02_person/src/index.ts | 8 -------- examples/02_person/src/index.tsx | 13 +++++++++++++ .../02_person/src/{Person.tsx => person.tsx} | 2 -- 7 files changed, 24 insertions(+), 28 deletions(-) rename examples/02_person/src/{App.tsx => app.tsx} (70%) rename examples/02_person/src/{Counter.tsx => counter.tsx} (94%) delete mode 100644 examples/02_person/src/index.ts create mode 100644 examples/02_person/src/index.tsx rename examples/02_person/src/{Person.tsx => person.tsx} (98%) diff --git a/examples/02_person/package.json b/examples/02_person/package.json index 08e26380..bba01aef 100644 --- a/examples/02_person/package.json +++ b/examples/02_person/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/02_person/public/index.html b/examples/02_person/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/02_person/public/index.html +++ b/examples/02_person/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/02_person/src/App.tsx b/examples/02_person/src/app.tsx similarity index 70% rename from examples/02_person/src/App.tsx rename to examples/02_person/src/app.tsx index 6cb2edcf..e709ae26 100644 --- a/examples/02_person/src/App.tsx +++ b/examples/02_person/src/app.tsx @@ -1,9 +1,9 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { Provider } from './state'; -import Counter from './Counter'; -import Person from './Person'; +import Counter from './counter'; +import Person from './person'; const App = () => ( diff --git a/examples/02_person/src/Counter.tsx b/examples/02_person/src/counter.tsx similarity index 94% rename from examples/02_person/src/Counter.tsx rename to examples/02_person/src/counter.tsx index d4e4b84e..80be5631 100644 --- a/examples/02_person/src/Counter.tsx +++ b/examples/02_person/src/counter.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTracked } from './state'; let numRendered = 0; diff --git a/examples/02_person/src/index.ts b/examples/02_person/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/02_person/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/02_person/src/index.tsx b/examples/02_person/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/02_person/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/02_person/src/Person.tsx b/examples/02_person/src/person.tsx similarity index 98% rename from examples/02_person/src/Person.tsx rename to examples/02_person/src/person.tsx index ccebe58d..38b0fe67 100644 --- a/examples/02_person/src/Person.tsx +++ b/examples/02_person/src/person.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTracked } from './state'; let numRendered = 0; From ca740ad2d06c8215a099476b8e7e94bbe3b34b49 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:06:28 +0900 Subject: [PATCH 06/25] ex 03 --- examples/03_usestate/package.json | 19 +++++++------------ examples/03_usestate/public/index.html | 2 +- examples/03_usestate/src/{App.tsx => app.tsx} | 6 +++--- .../src/{Counter.tsx => counter.tsx} | 2 -- examples/03_usestate/src/index.ts | 8 -------- examples/03_usestate/src/index.tsx | 13 +++++++++++++ .../src/{Person.tsx => person.tsx} | 2 -- 7 files changed, 24 insertions(+), 28 deletions(-) rename examples/03_usestate/src/{App.tsx => app.tsx} (70%) rename examples/03_usestate/src/{Counter.tsx => counter.tsx} (94%) delete mode 100644 examples/03_usestate/src/index.ts create mode 100644 examples/03_usestate/src/index.tsx rename examples/03_usestate/src/{Person.tsx => person.tsx} (97%) diff --git a/examples/03_usestate/package.json b/examples/03_usestate/package.json index 08e26380..bba01aef 100644 --- a/examples/03_usestate/package.json +++ b/examples/03_usestate/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/03_usestate/public/index.html b/examples/03_usestate/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/03_usestate/public/index.html +++ b/examples/03_usestate/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/03_usestate/src/App.tsx b/examples/03_usestate/src/app.tsx similarity index 70% rename from examples/03_usestate/src/App.tsx rename to examples/03_usestate/src/app.tsx index 6cb2edcf..e709ae26 100644 --- a/examples/03_usestate/src/App.tsx +++ b/examples/03_usestate/src/app.tsx @@ -1,9 +1,9 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { Provider } from './state'; -import Counter from './Counter'; -import Person from './Person'; +import Counter from './counter'; +import Person from './person'; const App = () => ( diff --git a/examples/03_usestate/src/Counter.tsx b/examples/03_usestate/src/counter.tsx similarity index 94% rename from examples/03_usestate/src/Counter.tsx rename to examples/03_usestate/src/counter.tsx index 392daded..11707e43 100644 --- a/examples/03_usestate/src/Counter.tsx +++ b/examples/03_usestate/src/counter.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTracked } from './state'; let numRendered = 0; diff --git a/examples/03_usestate/src/index.ts b/examples/03_usestate/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/03_usestate/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/03_usestate/src/index.tsx b/examples/03_usestate/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/03_usestate/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/03_usestate/src/Person.tsx b/examples/03_usestate/src/person.tsx similarity index 97% rename from examples/03_usestate/src/Person.tsx rename to examples/03_usestate/src/person.tsx index 86bfd26b..3e1d4e4c 100644 --- a/examples/03_usestate/src/Person.tsx +++ b/examples/03_usestate/src/person.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTracked } from './state'; let numRendered = 0; From b4bb4fe954bcac98df7d2c143081042d9e3c0075 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:11:27 +0900 Subject: [PATCH 07/25] ex 04 --- examples/04_selector/package.json | 19 +++++++------------ examples/04_selector/public/index.html | 2 +- examples/04_selector/src/{App.tsx => app.tsx} | 6 +++--- .../src/{Counter.tsx => counter.tsx} | 2 -- examples/04_selector/src/index.ts | 8 -------- examples/04_selector/src/index.tsx | 13 +++++++++++++ .../src/{Person.tsx => person.tsx} | 2 -- 7 files changed, 24 insertions(+), 28 deletions(-) rename examples/04_selector/src/{App.tsx => app.tsx} (70%) rename examples/04_selector/src/{Counter.tsx => counter.tsx} (95%) delete mode 100644 examples/04_selector/src/index.ts create mode 100644 examples/04_selector/src/index.tsx rename examples/04_selector/src/{Person.tsx => person.tsx} (97%) diff --git a/examples/04_selector/package.json b/examples/04_selector/package.json index 08e26380..bba01aef 100644 --- a/examples/04_selector/package.json +++ b/examples/04_selector/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/04_selector/public/index.html b/examples/04_selector/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/04_selector/public/index.html +++ b/examples/04_selector/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/04_selector/src/App.tsx b/examples/04_selector/src/app.tsx similarity index 70% rename from examples/04_selector/src/App.tsx rename to examples/04_selector/src/app.tsx index 6cb2edcf..e709ae26 100644 --- a/examples/04_selector/src/App.tsx +++ b/examples/04_selector/src/app.tsx @@ -1,9 +1,9 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { Provider } from './state'; -import Counter from './Counter'; -import Person from './Person'; +import Counter from './counter'; +import Person from './person'; const App = () => ( diff --git a/examples/04_selector/src/Counter.tsx b/examples/04_selector/src/counter.tsx similarity index 95% rename from examples/04_selector/src/Counter.tsx rename to examples/04_selector/src/counter.tsx index f665f978..0f84cfd5 100644 --- a/examples/04_selector/src/Counter.tsx +++ b/examples/04_selector/src/counter.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useSelector, useDispatch } from './state'; let numRendered = 0; diff --git a/examples/04_selector/src/index.ts b/examples/04_selector/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/04_selector/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/04_selector/src/index.tsx b/examples/04_selector/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/04_selector/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/04_selector/src/Person.tsx b/examples/04_selector/src/person.tsx similarity index 97% rename from examples/04_selector/src/Person.tsx rename to examples/04_selector/src/person.tsx index a140c4fb..0c2f3c2b 100644 --- a/examples/04_selector/src/Person.tsx +++ b/examples/04_selector/src/person.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useSelector, useDispatch } from './state'; let numRendered = 0; From 2e533425a0202032d1692b4d35d2e6247b805ab5 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:13:10 +0900 Subject: [PATCH 08/25] ex 05 --- examples/05_container/package.json | 19 +++++++------------ examples/05_container/public/index.html | 2 +- .../05_container/src/{App.tsx => app.tsx} | 4 ++-- .../src/{Counter.tsx => counter.tsx} | 2 -- examples/05_container/src/index.ts | 8 -------- examples/05_container/src/index.tsx | 13 +++++++++++++ 6 files changed, 23 insertions(+), 25 deletions(-) rename examples/05_container/src/{App.tsx => app.tsx} (90%) rename examples/05_container/src/{Counter.tsx => counter.tsx} (95%) delete mode 100644 examples/05_container/src/index.ts create mode 100644 examples/05_container/src/index.tsx diff --git a/examples/05_container/package.json b/examples/05_container/package.json index 08e26380..bba01aef 100644 --- a/examples/05_container/package.json +++ b/examples/05_container/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/05_container/public/index.html b/examples/05_container/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/05_container/public/index.html +++ b/examples/05_container/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/05_container/src/App.tsx b/examples/05_container/src/app.tsx similarity index 90% rename from examples/05_container/src/App.tsx rename to examples/05_container/src/app.tsx index 93737f92..3a0af49d 100644 --- a/examples/05_container/src/App.tsx +++ b/examples/05_container/src/app.tsx @@ -1,9 +1,9 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { createContainer } from 'react-tracked'; import { useValue } from './state'; -import Counter from './Counter'; +import Counter from './counter'; const container1 = createContainer(useValue, { concurrentMode: true }); const container2 = createContainer(useValue, { concurrentMode: true }); diff --git a/examples/05_container/src/Counter.tsx b/examples/05_container/src/counter.tsx similarity index 95% rename from examples/05_container/src/Counter.tsx rename to examples/05_container/src/counter.tsx index b91da3f5..421ea754 100644 --- a/examples/05_container/src/Counter.tsx +++ b/examples/05_container/src/counter.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useValue } from './state'; let numRendered = 0; diff --git a/examples/05_container/src/index.ts b/examples/05_container/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/05_container/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/05_container/src/index.tsx b/examples/05_container/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/05_container/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} From 408abfb3da1d9eb4f12173d777a1a2113316660c Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:15:48 +0900 Subject: [PATCH 09/25] ex 06 --- examples/06_customhook/package.json | 22 +++++---- examples/06_customhook/public/index.html | 2 +- examples/06_customhook/src/app.tsx | 49 ++++++++++++++++++++ examples/06_customhook/src/index.tsx | 57 ++++-------------------- 4 files changed, 69 insertions(+), 61 deletions(-) create mode 100644 examples/06_customhook/src/app.tsx diff --git a/examples/06_customhook/package.json b/examples/06_customhook/package.json index 1124f045..bba01aef 100644 --- a/examples/06_customhook/package.json +++ b/examples/06_customhook/package.json @@ -1,23 +1,21 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", + "@types/react": "latest", + "@types/react-dom": "latest", + "react": "latest", + "react-dom": "latest", + "react-scripts": "latest", "react-tracked": "latest", - "react-scripts": "latest" + "typescript": "latest" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/06_customhook/public/index.html b/examples/06_customhook/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/06_customhook/public/index.html +++ b/examples/06_customhook/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/06_customhook/src/app.tsx b/examples/06_customhook/src/app.tsx new file mode 100644 index 00000000..42cc6588 --- /dev/null +++ b/examples/06_customhook/src/app.tsx @@ -0,0 +1,49 @@ +import { useEffect, useState, StrictMode } from 'react'; + +import { createContainer } from 'react-tracked'; + +const useValue = () => { + const [count, setCountOrig] = useState(0); + const setCount = (nextCount: number) => { + // eslint-disable-next-line no-console + console.log({ nextCount }); + setCountOrig(nextCount); + }; + useEffect(() => { + // eslint-disable-next-line no-console + console.log({ count }); + }); + return [count, setCount] as const; +}; + +const { Provider, useTracked } = createContainer(useValue, { + concurrentMode: true, +}); + +const Counter = () => { + const [count, setCount] = useTracked(); + const increment = () => setCount(count + 1); + const decrement = () => setCount(count - 1); + return ( +
+ Count: {count} + + +
+ ); +}; + +const App = () => ( + + + + + + +); + +export default App; diff --git a/examples/06_customhook/src/index.tsx b/examples/06_customhook/src/index.tsx index b061cfea..10774d1c 100644 --- a/examples/06_customhook/src/index.tsx +++ b/examples/06_customhook/src/index.tsx @@ -1,52 +1,13 @@ -import React, { useEffect, useState, StrictMode } from 'react'; +import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; -import { createContainer } from 'react-tracked'; - -const useValue = () => { - const [count, setCountOrig] = useState(0); - const setCount = (nextCount: number) => { - // eslint-disable-next-line no-console - console.log({ nextCount }); - setCountOrig(nextCount); - }; - useEffect(() => { - // eslint-disable-next-line no-console - console.log({ count }); - }); - return [count, setCount] as const; -}; - -const { Provider, useTracked } = createContainer(useValue, { - concurrentMode: true, -}); - -const Counter = () => { - const [count, setCount] = useTracked(); - const increment = () => setCount(count + 1); - const decrement = () => setCount(count - 1); - return ( -
- Count: {count} - - -
- ); -}; - -const App = () => ( - - - - - - -); +import App from './app'; const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); +if (ele) { + createRoot(ele).render( + + + , + ); +} From c6e6ba1abe3e2e0ae857e70c3926950c3b7f3858 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:21:10 +0900 Subject: [PATCH 10/25] ex 07 --- examples/07_todolist/package.json | 19 +++++++------------ examples/07_todolist/public/index.html | 2 +- examples/07_todolist/src/{App.tsx => app.tsx} | 2 +- .../07_todolist/src/components/AddTodo.tsx | 2 +- examples/07_todolist/src/components/App.tsx | 2 -- .../07_todolist/src/components/FilterLink.tsx | 4 ++-- .../07_todolist/src/components/Footer.tsx | 2 -- examples/07_todolist/src/components/Todo.tsx | 4 ++-- .../src/components/VisibleTodoList.tsx | 2 -- .../src/hooks/useVisibilityFilter.ts | 3 ++- .../07_todolist/src/hooks/useVisibleTodos.ts | 3 ++- examples/07_todolist/src/index.ts | 8 -------- examples/07_todolist/src/index.tsx | 13 +++++++++++++ package.json | 1 + pnpm-lock.yaml | 7 +++++++ 15 files changed, 39 insertions(+), 35 deletions(-) rename examples/07_todolist/src/{App.tsx => app.tsx} (82%) delete mode 100644 examples/07_todolist/src/index.ts create mode 100644 examples/07_todolist/src/index.tsx diff --git a/examples/07_todolist/package.json b/examples/07_todolist/package.json index c017522f..95a0efd0 100644 --- a/examples/07_todolist/package.json +++ b/examples/07_todolist/package.json @@ -1,15 +1,16 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", "immer": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -17,11 +18,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/07_todolist/public/index.html b/examples/07_todolist/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/07_todolist/public/index.html +++ b/examples/07_todolist/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/07_todolist/src/App.tsx b/examples/07_todolist/src/app.tsx similarity index 82% rename from examples/07_todolist/src/App.tsx rename to examples/07_todolist/src/app.tsx index 6b16c22f..b974c495 100644 --- a/examples/07_todolist/src/App.tsx +++ b/examples/07_todolist/src/app.tsx @@ -1,4 +1,4 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { Provider } from './state'; diff --git a/examples/07_todolist/src/components/AddTodo.tsx b/examples/07_todolist/src/components/AddTodo.tsx index 4babc684..ec8b93df 100644 --- a/examples/07_todolist/src/components/AddTodo.tsx +++ b/examples/07_todolist/src/components/AddTodo.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import useAddTodo from '../hooks/useAddTodo'; diff --git a/examples/07_todolist/src/components/App.tsx b/examples/07_todolist/src/components/App.tsx index 371eb515..8da04ef2 100644 --- a/examples/07_todolist/src/components/App.tsx +++ b/examples/07_todolist/src/components/App.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import Footer from './Footer'; import AddTodo from './AddTodo'; import VisibleTodoList from './VisibleTodoList'; diff --git a/examples/07_todolist/src/components/FilterLink.tsx b/examples/07_todolist/src/components/FilterLink.tsx index 58a9f7e2..f45a51bb 100644 --- a/examples/07_todolist/src/components/FilterLink.tsx +++ b/examples/07_todolist/src/components/FilterLink.tsx @@ -1,7 +1,7 @@ -import React, { ReactNode } from 'react'; +import type { ReactNode } from 'react'; import useVisibilityFilter from '../hooks/useVisibilityFilter'; -import { VisibilityFilterType } from '../state'; +import type{ VisibilityFilterType } from '../state'; type Props = { filter: VisibilityFilterType; diff --git a/examples/07_todolist/src/components/Footer.tsx b/examples/07_todolist/src/components/Footer.tsx index 4b3fe9e6..064dfa2f 100644 --- a/examples/07_todolist/src/components/Footer.tsx +++ b/examples/07_todolist/src/components/Footer.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import FilterLink from './FilterLink'; const Footer = () => ( diff --git a/examples/07_todolist/src/components/Todo.tsx b/examples/07_todolist/src/components/Todo.tsx index 52d3c134..3848ea96 100644 --- a/examples/07_todolist/src/components/Todo.tsx +++ b/examples/07_todolist/src/components/Todo.tsx @@ -1,7 +1,7 @@ -import React from 'react'; +import type { MouseEvent } from 'react'; type Props = { - onClick: (e: React.MouseEvent) => void; + onClick: (e: MouseEvent) => void; completed: boolean; text: string; }; diff --git a/examples/07_todolist/src/components/VisibleTodoList.tsx b/examples/07_todolist/src/components/VisibleTodoList.tsx index 69b6f0ff..f8b578a2 100644 --- a/examples/07_todolist/src/components/VisibleTodoList.tsx +++ b/examples/07_todolist/src/components/VisibleTodoList.tsx @@ -1,7 +1,5 @@ /* eslint-disable react/jsx-props-no-spreading */ -import React from 'react'; - import useVisibleTodos from '../hooks/useVisibleTodos'; import useToggleTodo from '../hooks/useToggleTodo'; import Todo from './Todo'; diff --git a/examples/07_todolist/src/hooks/useVisibilityFilter.ts b/examples/07_todolist/src/hooks/useVisibilityFilter.ts index 1659f431..8d292380 100644 --- a/examples/07_todolist/src/hooks/useVisibilityFilter.ts +++ b/examples/07_todolist/src/hooks/useVisibilityFilter.ts @@ -1,7 +1,8 @@ import { useCallback } from 'react'; import { produce } from 'immer'; -import { VisibilityFilterType, useTracked } from '../state'; +import { useTracked } from '../state'; +import type { VisibilityFilterType } from '../state'; const useVisibilityFilter = () => { const [state, setState] = useTracked(); diff --git a/examples/07_todolist/src/hooks/useVisibleTodos.ts b/examples/07_todolist/src/hooks/useVisibleTodos.ts index 8412cebc..e753c787 100644 --- a/examples/07_todolist/src/hooks/useVisibleTodos.ts +++ b/examples/07_todolist/src/hooks/useVisibleTodos.ts @@ -1,4 +1,5 @@ -import { TodoType, VisibilityFilterType, useTrackedState } from '../state'; +import { useTrackedState } from '../state'; +import type { TodoType, VisibilityFilterType } from '../state'; const getVisibleTodos = (todos: TodoType[], filter: VisibilityFilterType) => { switch (filter) { diff --git a/examples/07_todolist/src/index.ts b/examples/07_todolist/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/07_todolist/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/07_todolist/src/index.tsx b/examples/07_todolist/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/07_todolist/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/package.json b/package.json index 222c327b..6260f926 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.2", "happy-dom": "^14.7.1", + "immer": "^10.1.1", "prettier": "^3.2.5", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc952a63..826c788a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,6 +64,9 @@ devDependencies: happy-dom: specifier: ^14.7.1 version: 14.7.1 + immer: + specifier: ^10.1.1 + version: 10.1.1 prettier: specifier: ^3.2.5 version: 3.2.5 @@ -2048,6 +2051,10 @@ packages: engines: {node: '>= 4'} dev: true + /immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} From 408b40ef4c3598eb81eaa2e8d66f1ed272f8de82 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:25:44 +0900 Subject: [PATCH 11/25] ex 08 --- examples/08_comparison/package.json | 19 +++++++------------ examples/08_comparison/public/index.html | 2 +- .../08_comparison/src/ContextWithMemo.tsx | 11 +++++++---- .../08_comparison/src/ContextWithUseMemo.tsx | 10 ++-------- examples/08_comparison/src/NaiveContext.tsx | 4 ++-- examples/08_comparison/src/ReactTracked.tsx | 3 ++- examples/08_comparison/src/SplitContext.tsx | 11 +++++++---- .../08_comparison/src/{App.tsx => app.tsx} | 2 +- examples/08_comparison/src/index.ts | 8 -------- examples/08_comparison/src/index.tsx | 13 +++++++++++++ 10 files changed, 42 insertions(+), 41 deletions(-) rename examples/08_comparison/src/{App.tsx => app.tsx} (93%) delete mode 100644 examples/08_comparison/src/index.ts create mode 100644 examples/08_comparison/src/index.tsx diff --git a/examples/08_comparison/package.json b/examples/08_comparison/package.json index 08e26380..bba01aef 100644 --- a/examples/08_comparison/package.json +++ b/examples/08_comparison/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/08_comparison/public/index.html b/examples/08_comparison/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/08_comparison/public/index.html +++ b/examples/08_comparison/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/08_comparison/src/ContextWithMemo.tsx b/examples/08_comparison/src/ContextWithMemo.tsx index 3992de71..74a97c3c 100644 --- a/examples/08_comparison/src/ContextWithMemo.tsx +++ b/examples/08_comparison/src/ContextWithMemo.tsx @@ -1,11 +1,14 @@ -import React, { +/* eslint react/display-name: off */ + +import { createContext, + memo, useContext, useReducer, useRef, useEffect, - Reducer, } from 'react'; +import type { Reducer } from 'react'; const initialState = { firstName: 'Harry', @@ -34,7 +37,7 @@ const PersonContext = createContext<[State, Dispatch]>([ () => null, ]); -const InnerPersonFirstName = React.memo( +const InnerPersonFirstName = memo( ({ firstName, dispatch }: { firstName: string; dispatch: Dispatch }) => { const renders = useRef(1); useEffect(() => { @@ -62,7 +65,7 @@ const PersonFirstName = () => { ); }; -const InnerPersonFamilyName = React.memo( +const InnerPersonFamilyName = memo( ({ familyName, dispatch }: { familyName: string; dispatch: Dispatch }) => { const renders = useRef(1); useEffect(() => { diff --git a/examples/08_comparison/src/ContextWithUseMemo.tsx b/examples/08_comparison/src/ContextWithUseMemo.tsx index df05eb67..4596411d 100644 --- a/examples/08_comparison/src/ContextWithUseMemo.tsx +++ b/examples/08_comparison/src/ContextWithUseMemo.tsx @@ -1,11 +1,5 @@ -import React, { - createContext, - useContext, - useReducer, - useRef, - useMemo, - Reducer, -} from 'react'; +import { createContext, useContext, useReducer, useRef, useMemo } from 'react'; +import type { Reducer } from 'react'; const initialState = { firstName: 'Harry', diff --git a/examples/08_comparison/src/NaiveContext.tsx b/examples/08_comparison/src/NaiveContext.tsx index 1ff7cb0d..5bc9d961 100644 --- a/examples/08_comparison/src/NaiveContext.tsx +++ b/examples/08_comparison/src/NaiveContext.tsx @@ -1,11 +1,11 @@ -import React, { +import { createContext, useContext, useReducer, useRef, useEffect, - Reducer, } from 'react'; +import type { Reducer } from 'react'; const initialState = { firstName: 'Harry', diff --git a/examples/08_comparison/src/ReactTracked.tsx b/examples/08_comparison/src/ReactTracked.tsx index 97b0e9cf..00a18ad3 100644 --- a/examples/08_comparison/src/ReactTracked.tsx +++ b/examples/08_comparison/src/ReactTracked.tsx @@ -1,4 +1,5 @@ -import React, { useReducer, useRef, useEffect, Reducer } from 'react'; +import { useReducer, useRef, useEffect } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; diff --git a/examples/08_comparison/src/SplitContext.tsx b/examples/08_comparison/src/SplitContext.tsx index 75bb4695..cf3182d4 100644 --- a/examples/08_comparison/src/SplitContext.tsx +++ b/examples/08_comparison/src/SplitContext.tsx @@ -1,12 +1,15 @@ -import React, { +/* eslint react/display-name: off */ + +import { createContext, + memo, useContext, useReducer, useRef, useEffect, useMemo, - Reducer, } from 'react'; +import type { Reducer } from 'react'; const initialState1 = { firstName: 'Harry', @@ -52,7 +55,7 @@ const PersonContext2 = createContext<[State2, Dispatch2]>([ () => null, ]); -const PersonFirstName = React.memo(() => { +const PersonFirstName = memo(() => { const [state, dispatch] = useContext(PersonContext1); const renders = useRef(1); useEffect(() => { @@ -72,7 +75,7 @@ const PersonFirstName = React.memo(() => { ); }); -const PersonFamilyName = React.memo(() => { +const PersonFamilyName = memo(() => { const [state, dispatch] = useContext(PersonContext2); const renders = useRef(1); useEffect(() => { diff --git a/examples/08_comparison/src/App.tsx b/examples/08_comparison/src/app.tsx similarity index 93% rename from examples/08_comparison/src/App.tsx rename to examples/08_comparison/src/app.tsx index 5e28a6ba..9c514729 100644 --- a/examples/08_comparison/src/App.tsx +++ b/examples/08_comparison/src/app.tsx @@ -1,4 +1,4 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import NaiveContext from './NaiveContext'; import SplitContext from './SplitContext'; diff --git a/examples/08_comparison/src/index.ts b/examples/08_comparison/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/08_comparison/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/08_comparison/src/index.tsx b/examples/08_comparison/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/08_comparison/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} From d788cb64a22652e2a4f41271fd85e77b7e4af761 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:28:47 +0900 Subject: [PATCH 12/25] ex 09 --- examples/09_reactmemo/package.json | 19 +++++++------------ examples/09_reactmemo/public/index.html | 2 +- examples/09_reactmemo/src/TodoItem.tsx | 9 ++++++--- examples/09_reactmemo/src/TodoList.tsx | 2 -- .../09_reactmemo/src/{App.tsx => app.tsx} | 2 -- examples/09_reactmemo/src/index.ts | 8 -------- examples/09_reactmemo/src/index.tsx | 13 +++++++++++++ 7 files changed, 27 insertions(+), 28 deletions(-) rename examples/09_reactmemo/src/{App.tsx => app.tsx} (85%) delete mode 100644 examples/09_reactmemo/src/index.ts create mode 100644 examples/09_reactmemo/src/index.tsx diff --git a/examples/09_reactmemo/package.json b/examples/09_reactmemo/package.json index 08e26380..bba01aef 100644 --- a/examples/09_reactmemo/package.json +++ b/examples/09_reactmemo/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/09_reactmemo/public/index.html b/examples/09_reactmemo/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/09_reactmemo/public/index.html +++ b/examples/09_reactmemo/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
diff --git a/examples/09_reactmemo/src/TodoItem.tsx b/examples/09_reactmemo/src/TodoItem.tsx index afafca63..ce81f53a 100644 --- a/examples/09_reactmemo/src/TodoItem.tsx +++ b/examples/09_reactmemo/src/TodoItem.tsx @@ -1,6 +1,9 @@ -import React from 'react'; +/* eslint react/display-name: off */ -import { useDispatch, TodoType } from './store'; +import { memo } from 'react'; + +import { useDispatch } from './store'; +import type { TodoType } from './store'; type Props = { todo: TodoType; @@ -8,7 +11,7 @@ type Props = { let numRendered = 0; -const TodoItem = React.memo(({ todo }: Props) => { +const TodoItem = memo(({ todo }: Props) => { const dispatch = useDispatch(); return (
  • diff --git a/examples/09_reactmemo/src/TodoList.tsx b/examples/09_reactmemo/src/TodoList.tsx index e1683c8a..1a355bee 100644 --- a/examples/09_reactmemo/src/TodoList.tsx +++ b/examples/09_reactmemo/src/TodoList.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTrackedState } from './store'; import TodoItem from './TodoItem'; diff --git a/examples/09_reactmemo/src/App.tsx b/examples/09_reactmemo/src/app.tsx similarity index 85% rename from examples/09_reactmemo/src/App.tsx rename to examples/09_reactmemo/src/app.tsx index 36a94204..70fd75cc 100644 --- a/examples/09_reactmemo/src/App.tsx +++ b/examples/09_reactmemo/src/app.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { Provider } from './store'; import TodoList from './TodoList'; diff --git a/examples/09_reactmemo/src/index.ts b/examples/09_reactmemo/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/09_reactmemo/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/09_reactmemo/src/index.tsx b/examples/09_reactmemo/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/09_reactmemo/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} From d881aac9483dd5a69dbc80f9b8a7315dd8dadf61 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:30:57 +0900 Subject: [PATCH 13/25] ex 10 --- examples/10_untracked/package.json | 19 +++++++------------ examples/10_untracked/public/index.html | 2 +- examples/10_untracked/src/TodoItem.tsx | 4 +--- examples/10_untracked/src/TodoList.tsx | 2 -- .../10_untracked/src/{App.tsx => app.tsx} | 2 -- examples/10_untracked/src/index.ts | 8 -------- examples/10_untracked/src/index.tsx | 13 +++++++++++++ 7 files changed, 22 insertions(+), 28 deletions(-) rename examples/10_untracked/src/{App.tsx => app.tsx} (85%) delete mode 100644 examples/10_untracked/src/index.ts create mode 100644 examples/10_untracked/src/index.tsx diff --git a/examples/10_untracked/package.json b/examples/10_untracked/package.json index 08e26380..bba01aef 100644 --- a/examples/10_untracked/package.json +++ b/examples/10_untracked/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/10_untracked/public/index.html b/examples/10_untracked/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/10_untracked/public/index.html +++ b/examples/10_untracked/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/10_untracked/src/TodoItem.tsx b/examples/10_untracked/src/TodoItem.tsx index ca368135..cefbdf81 100644 --- a/examples/10_untracked/src/TodoItem.tsx +++ b/examples/10_untracked/src/TodoItem.tsx @@ -1,10 +1,8 @@ -import React from 'react'; - import { useDispatch, // useUntrackedDispatch as useDispatch, // for unwrapping proxy - TodoType, } from './store'; +import type { TodoType } from './store'; type Props = { todo: TodoType; diff --git a/examples/10_untracked/src/TodoList.tsx b/examples/10_untracked/src/TodoList.tsx index e1683c8a..1a355bee 100644 --- a/examples/10_untracked/src/TodoList.tsx +++ b/examples/10_untracked/src/TodoList.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTrackedState } from './store'; import TodoItem from './TodoItem'; diff --git a/examples/10_untracked/src/App.tsx b/examples/10_untracked/src/app.tsx similarity index 85% rename from examples/10_untracked/src/App.tsx rename to examples/10_untracked/src/app.tsx index 36a94204..70fd75cc 100644 --- a/examples/10_untracked/src/App.tsx +++ b/examples/10_untracked/src/app.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { Provider } from './store'; import TodoList from './TodoList'; diff --git a/examples/10_untracked/src/index.ts b/examples/10_untracked/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/10_untracked/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/10_untracked/src/index.tsx b/examples/10_untracked/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/10_untracked/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} From 65457a6737bde36e84bc3c323b94a2605b9e937a Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:34:54 +0900 Subject: [PATCH 14/25] ex 11 --- examples/11_form/package.json | 19 +++++++------------ examples/11_form/public/index.html | 2 +- examples/11_form/src/{App.tsx => app.tsx} | 4 ++-- examples/11_form/src/index.ts | 8 -------- examples/11_form/src/index.tsx | 13 +++++++++++++ .../src/{PersonForm.tsx => person-form.tsx} | 16 +++++++++------- 6 files changed, 32 insertions(+), 30 deletions(-) rename examples/11_form/src/{App.tsx => app.tsx} (73%) delete mode 100644 examples/11_form/src/index.ts create mode 100644 examples/11_form/src/index.tsx rename examples/11_form/src/{PersonForm.tsx => person-form.tsx} (86%) diff --git a/examples/11_form/package.json b/examples/11_form/package.json index 08e26380..bba01aef 100644 --- a/examples/11_form/package.json +++ b/examples/11_form/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/11_form/public/index.html b/examples/11_form/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/11_form/public/index.html +++ b/examples/11_form/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/11_form/src/App.tsx b/examples/11_form/src/app.tsx similarity index 73% rename from examples/11_form/src/App.tsx rename to examples/11_form/src/app.tsx index edd7259a..2b0f75a7 100644 --- a/examples/11_form/src/App.tsx +++ b/examples/11_form/src/app.tsx @@ -1,6 +1,6 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; -import PersonForm from './PersonForm'; +import PersonForm from './person-form'; const App = () => ( diff --git a/examples/11_form/src/index.ts b/examples/11_form/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/11_form/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/11_form/src/index.tsx b/examples/11_form/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/11_form/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/11_form/src/PersonForm.tsx b/examples/11_form/src/person-form.tsx similarity index 86% rename from examples/11_form/src/PersonForm.tsx rename to examples/11_form/src/person-form.tsx index 906fafe8..bec78447 100644 --- a/examples/11_form/src/PersonForm.tsx +++ b/examples/11_form/src/person-form.tsx @@ -1,6 +1,8 @@ /* eslint react/jsx-props-no-spreading: off */ +/* eslint react/display-name: off */ -import React from 'react'; +import { memo } from 'react'; +import type { FormEvent } from 'react'; import { FormProvider, @@ -17,7 +19,7 @@ const validateName = (name: unknown) => { return null; }; -const FirstName = React.memo(() => ( +const FirstName = memo(() => (
    numRendered: {++numRendered}
    @@ -28,7 +30,7 @@ const FirstName = React.memo(() => (
    )); -const FamilyName = React.memo(() => ( +const FamilyName = memo(() => (
    numRendered: {++numRendered}
    @@ -39,7 +41,7 @@ const FamilyName = React.memo(() => (
    )); -const Gender = React.memo(() => ( +const Gender = memo(() => (
    numRendered: {++numRendered}
    @@ -54,7 +56,7 @@ const Gender = React.memo(() => (
    )); -const Teenager = React.memo(() => ( +const Teenager = memo(() => (
    numRendered: {++numRendered}
    @@ -65,9 +67,9 @@ const Teenager = React.memo(() => (
    )); -const PersonForm = React.memo(() => { +const PersonForm = memo(() => { const formValues = useFormValues(); - const onSubmit = (event: React.FormEvent) => { + const onSubmit = (event: FormEvent) => { event.preventDefault(); // eslint-disable-next-line no-console console.log(formValues); From 61027c6dc6710c48f63ccaa05fa1ae2f2fbb9209 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:39:54 +0900 Subject: [PATCH 15/25] ex 12 --- examples/12_async/package.json | 19 +++++++------------ examples/12_async/public/index.html | 2 +- examples/12_async/src/{App.tsx => app.tsx} | 4 +--- .../12_async/src/{Counter.tsx => counter.tsx} | 4 ++-- examples/12_async/src/index.ts | 8 -------- examples/12_async/src/index.tsx | 13 +++++++++++++ examples/12_async/src/{Main.tsx => main.tsx} | 6 +++--- .../12_async/src/{Person.tsx => person.tsx} | 2 -- examples/12_async/src/store.ts | 7 ++++--- 9 files changed, 31 insertions(+), 34 deletions(-) rename examples/12_async/src/{App.tsx => app.tsx} (68%) rename examples/12_async/src/{Counter.tsx => counter.tsx} (88%) delete mode 100644 examples/12_async/src/index.ts create mode 100644 examples/12_async/src/index.tsx rename examples/12_async/src/{Main.tsx => main.tsx} (82%) rename examples/12_async/src/{Person.tsx => person.tsx} (96%) diff --git a/examples/12_async/package.json b/examples/12_async/package.json index e484ab7f..aaa7635b 100644 --- a/examples/12_async/package.json +++ b/examples/12_async/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest", "use-reducer-async": "latest" }, @@ -17,11 +18,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/12_async/public/index.html b/examples/12_async/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/12_async/public/index.html +++ b/examples/12_async/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/12_async/src/App.tsx b/examples/12_async/src/app.tsx similarity index 68% rename from examples/12_async/src/App.tsx rename to examples/12_async/src/app.tsx index 33e61fba..305afd67 100644 --- a/examples/12_async/src/App.tsx +++ b/examples/12_async/src/app.tsx @@ -1,7 +1,5 @@ -import React from 'react'; - import { Provider } from './store'; -import Main from './Main'; +import Main from './main'; const App = () => ( diff --git a/examples/12_async/src/Counter.tsx b/examples/12_async/src/counter.tsx similarity index 88% rename from examples/12_async/src/Counter.tsx rename to examples/12_async/src/counter.tsx index 923ac8cb..63430817 100644 --- a/examples/12_async/src/Counter.tsx +++ b/examples/12_async/src/counter.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import { memo } from 'react'; import { useTrackedState, useDispatch } from './store'; @@ -22,4 +22,4 @@ const Counter = () => { ); }; -export default React.memo(Counter); +export default memo(Counter); diff --git a/examples/12_async/src/index.ts b/examples/12_async/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/12_async/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/12_async/src/index.tsx b/examples/12_async/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/12_async/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/12_async/src/Main.tsx b/examples/12_async/src/main.tsx similarity index 82% rename from examples/12_async/src/Main.tsx rename to examples/12_async/src/main.tsx index 7bd1b33e..7f5eb621 100644 --- a/examples/12_async/src/Main.tsx +++ b/examples/12_async/src/main.tsx @@ -1,8 +1,8 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import { useTrackedState } from './store'; -import Person from './Person'; -import Counter from './Counter'; +import Person from './person'; +import Counter from './counter'; const Main = () => { const state = useTrackedState(); diff --git a/examples/12_async/src/Person.tsx b/examples/12_async/src/person.tsx similarity index 96% rename from examples/12_async/src/Person.tsx rename to examples/12_async/src/person.tsx index 107f8e21..8191aec8 100644 --- a/examples/12_async/src/Person.tsx +++ b/examples/12_async/src/person.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTrackedState, useDispatch } from './store'; type Props = { diff --git a/examples/12_async/src/store.ts b/examples/12_async/src/store.ts index 38aa3b8c..17d840de 100644 --- a/examples/12_async/src/store.ts +++ b/examples/12_async/src/store.ts @@ -1,5 +1,6 @@ -import { Reducer } from 'react'; -import { useReducerAsync, AsyncActionHandlers } from 'use-reducer-async'; +import type { Reducer } from 'react'; +import { useReducerAsync } from 'use-reducer-async'; +import type { AsyncActionHandlers } from 'use-reducer-async'; import { createContainer } from 'react-tracked'; type State = { @@ -95,7 +96,7 @@ const asyncActionHandlers: AsyncActionHandlers< const firstName = data.data.first_name; if (typeof firstName !== 'string') throw new Error(); dispatch({ type: 'FINISH_FETCH_USER', firstName }); - } catch (e) { + } catch (_e) { dispatch({ type: 'ERROR_FETCH_USER' }); } }, From a3185eaa5a0b6c0370dc9832106333d3a73e02da Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:44:08 +0900 Subject: [PATCH 16/25] ex 13 --- examples/13_saga/package.json | 21 +++++++------------ examples/13_saga/public/index.html | 2 +- examples/13_saga/src/{App.tsx => app.tsx} | 4 +--- .../13_saga/src/{Counter.tsx => counter.tsx} | 4 ++-- examples/13_saga/src/index.ts | 8 ------- examples/13_saga/src/index.tsx | 13 ++++++++++++ examples/13_saga/src/{Main.tsx => main.tsx} | 6 +++--- .../13_saga/src/{Person.tsx => person.tsx} | 2 -- examples/13_saga/src/store.ts | 5 +++-- 9 files changed, 31 insertions(+), 34 deletions(-) rename examples/13_saga/src/{App.tsx => app.tsx} (68%) rename examples/13_saga/src/{Counter.tsx => counter.tsx} (88%) delete mode 100644 examples/13_saga/src/index.ts create mode 100644 examples/13_saga/src/index.tsx rename examples/13_saga/src/{Main.tsx => main.tsx} (82%) rename examples/13_saga/src/{Person.tsx => person.tsx} (96%) diff --git a/examples/13_saga/package.json b/examples/13_saga/package.json index cd9f1ff9..05e52f39 100644 --- a/examples/13_saga/package.json +++ b/examples/13_saga/package.json @@ -1,28 +1,23 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "redux-saga": "latest", "typescript": "latest", - "use-saga-reducer": ">=2.0.0" + "use-saga-reducer": "latest" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/13_saga/public/index.html b/examples/13_saga/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/13_saga/public/index.html +++ b/examples/13_saga/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/13_saga/src/App.tsx b/examples/13_saga/src/app.tsx similarity index 68% rename from examples/13_saga/src/App.tsx rename to examples/13_saga/src/app.tsx index 33e61fba..305afd67 100644 --- a/examples/13_saga/src/App.tsx +++ b/examples/13_saga/src/app.tsx @@ -1,7 +1,5 @@ -import React from 'react'; - import { Provider } from './store'; -import Main from './Main'; +import Main from './main'; const App = () => ( diff --git a/examples/13_saga/src/Counter.tsx b/examples/13_saga/src/counter.tsx similarity index 88% rename from examples/13_saga/src/Counter.tsx rename to examples/13_saga/src/counter.tsx index 923ac8cb..63430817 100644 --- a/examples/13_saga/src/Counter.tsx +++ b/examples/13_saga/src/counter.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import { memo } from 'react'; import { useTrackedState, useDispatch } from './store'; @@ -22,4 +22,4 @@ const Counter = () => { ); }; -export default React.memo(Counter); +export default memo(Counter); diff --git a/examples/13_saga/src/index.ts b/examples/13_saga/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/13_saga/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/13_saga/src/index.tsx b/examples/13_saga/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/13_saga/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/13_saga/src/Main.tsx b/examples/13_saga/src/main.tsx similarity index 82% rename from examples/13_saga/src/Main.tsx rename to examples/13_saga/src/main.tsx index 7bd1b33e..7f5eb621 100644 --- a/examples/13_saga/src/Main.tsx +++ b/examples/13_saga/src/main.tsx @@ -1,8 +1,8 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import { useTrackedState } from './store'; -import Person from './Person'; -import Counter from './Counter'; +import Person from './person'; +import Counter from './counter'; const Main = () => { const state = useTrackedState(); diff --git a/examples/13_saga/src/Person.tsx b/examples/13_saga/src/person.tsx similarity index 96% rename from examples/13_saga/src/Person.tsx rename to examples/13_saga/src/person.tsx index 107f8e21..8191aec8 100644 --- a/examples/13_saga/src/Person.tsx +++ b/examples/13_saga/src/person.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { useTrackedState, useDispatch } from './store'; type Props = { diff --git a/examples/13_saga/src/store.ts b/examples/13_saga/src/store.ts index 674c02c1..96cbb187 100644 --- a/examples/13_saga/src/store.ts +++ b/examples/13_saga/src/store.ts @@ -1,4 +1,4 @@ -import { Reducer } from 'react'; +import type { Reducer } from 'react'; import { call, put, @@ -7,6 +7,7 @@ import { takeEvery, all, } from 'redux-saga/effects'; +// eslint-disable-next-line import/no-named-as-default import useSagaReducer from 'use-saga-reducer'; import { createContainer } from 'react-tracked'; @@ -92,7 +93,7 @@ function* userFetcher(action: AsyncActionFetch) { const firstName = data.data.first_name; if (typeof firstName !== 'string') throw new Error(); yield put({ type: 'FINISH_FETCH_USER', firstName }); - } catch (e) { + } catch (_e) { yield put({ type: 'ERROR_FETCH_USER' }); } } From 2e44e75f290a03ed6c270f6385184922503cea96 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:46:17 +0900 Subject: [PATCH 17/25] ex 14 --- examples/14_dynamic/package.json | 19 +++++++------------ examples/14_dynamic/public/index.html | 2 +- examples/14_dynamic/src/{App.tsx => app.tsx} | 6 +++--- .../src/{Counter.tsx => counter.tsx} | 2 +- examples/14_dynamic/src/index.ts | 8 -------- examples/14_dynamic/src/index.tsx | 13 +++++++++++++ .../14_dynamic/src/{Person.tsx => person.tsx} | 2 +- examples/14_dynamic/src/state.ts | 3 ++- 8 files changed, 28 insertions(+), 27 deletions(-) rename examples/14_dynamic/src/{App.tsx => app.tsx} (70%) rename examples/14_dynamic/src/{Counter.tsx => counter.tsx} (94%) delete mode 100644 examples/14_dynamic/src/index.ts create mode 100644 examples/14_dynamic/src/index.tsx rename examples/14_dynamic/src/{Person.tsx => person.tsx} (97%) diff --git a/examples/14_dynamic/package.json b/examples/14_dynamic/package.json index 08e26380..bba01aef 100644 --- a/examples/14_dynamic/package.json +++ b/examples/14_dynamic/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/14_dynamic/public/index.html b/examples/14_dynamic/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/14_dynamic/public/index.html +++ b/examples/14_dynamic/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/14_dynamic/src/App.tsx b/examples/14_dynamic/src/app.tsx similarity index 70% rename from examples/14_dynamic/src/App.tsx rename to examples/14_dynamic/src/app.tsx index 6cb2edcf..e709ae26 100644 --- a/examples/14_dynamic/src/App.tsx +++ b/examples/14_dynamic/src/app.tsx @@ -1,9 +1,9 @@ -import React, { StrictMode } from 'react'; +import { StrictMode } from 'react'; import { Provider } from './state'; -import Counter from './Counter'; -import Person from './Person'; +import Counter from './counter'; +import Person from './person'; const App = () => ( diff --git a/examples/14_dynamic/src/Counter.tsx b/examples/14_dynamic/src/counter.tsx similarity index 94% rename from examples/14_dynamic/src/Counter.tsx rename to examples/14_dynamic/src/counter.tsx index 4f5b583a..99452fb4 100644 --- a/examples/14_dynamic/src/Counter.tsx +++ b/examples/14_dynamic/src/counter.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import { useTracked } from './state'; diff --git a/examples/14_dynamic/src/index.ts b/examples/14_dynamic/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/14_dynamic/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/14_dynamic/src/index.tsx b/examples/14_dynamic/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/14_dynamic/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/14_dynamic/src/Person.tsx b/examples/14_dynamic/src/person.tsx similarity index 97% rename from examples/14_dynamic/src/Person.tsx rename to examples/14_dynamic/src/person.tsx index 07b22233..a69c3190 100644 --- a/examples/14_dynamic/src/Person.tsx +++ b/examples/14_dynamic/src/person.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import { useTracked } from './state'; diff --git a/examples/14_dynamic/src/state.ts b/examples/14_dynamic/src/state.ts index a271d3b2..c475575d 100644 --- a/examples/14_dynamic/src/state.ts +++ b/examples/14_dynamic/src/state.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; From 7455d6c117b9e2bcb35aa80f3c48768fe8de4307 Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 22:49:07 +0900 Subject: [PATCH 18/25] ex 15 --- examples/15_reactmemoref/package.json | 19 +++++++------------ examples/15_reactmemoref/public/index.html | 2 +- examples/15_reactmemoref/src/TodoItem.tsx | 7 ++++--- examples/15_reactmemoref/src/TodoList.tsx | 4 ++-- .../15_reactmemoref/src/{App.tsx => app.tsx} | 2 -- examples/15_reactmemoref/src/index.ts | 8 -------- examples/15_reactmemoref/src/index.tsx | 13 +++++++++++++ examples/15_reactmemoref/src/store.ts | 3 ++- 8 files changed, 29 insertions(+), 29 deletions(-) rename examples/15_reactmemoref/src/{App.tsx => app.tsx} (85%) delete mode 100644 examples/15_reactmemoref/src/index.ts create mode 100644 examples/15_reactmemoref/src/index.tsx diff --git a/examples/15_reactmemoref/package.json b/examples/15_reactmemoref/package.json index 08e26380..bba01aef 100644 --- a/examples/15_reactmemoref/package.json +++ b/examples/15_reactmemoref/package.json @@ -1,14 +1,15 @@ { - "name": "react-tracked-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "commonjs", "dependencies": { "@types/react": "latest", "@types/react-dom": "latest", - "react": "18.0.0-rc.2", - "react-dom": "18.0.0-rc.2", - "react-tracked": "latest", + "react": "latest", + "react-dom": "latest", "react-scripts": "latest", + "react-tracked": "latest", "typescript": "latest" }, "scripts": { @@ -16,11 +17,5 @@ "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" - }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + } } diff --git a/examples/15_reactmemoref/public/index.html b/examples/15_reactmemoref/public/index.html index 71fee982..ad4c7826 100644 --- a/examples/15_reactmemoref/public/index.html +++ b/examples/15_reactmemoref/public/index.html @@ -1,6 +1,6 @@ - react-tracked example + example
    diff --git a/examples/15_reactmemoref/src/TodoItem.tsx b/examples/15_reactmemoref/src/TodoItem.tsx index 68b92a4a..4e7f85b8 100644 --- a/examples/15_reactmemoref/src/TodoItem.tsx +++ b/examples/15_reactmemoref/src/TodoItem.tsx @@ -1,6 +1,7 @@ -import React, { forwardRef } from 'react'; +import { memo, forwardRef } from 'react'; -import { useDispatch, TodoType } from './store'; +import { useDispatch } from './store'; +import type { TodoType } from './store'; type Props = { // FIXME why this complaints? @@ -10,7 +11,7 @@ type Props = { let numRendered = 0; -const TodoItem = React.memo( +const TodoItem = memo( forwardRef(({ todo }, ref) => { const dispatch = useDispatch(); return ( diff --git a/examples/15_reactmemoref/src/TodoList.tsx b/examples/15_reactmemoref/src/TodoList.tsx index e931d71d..d3fed1bf 100644 --- a/examples/15_reactmemoref/src/TodoList.tsx +++ b/examples/15_reactmemoref/src/TodoList.tsx @@ -1,11 +1,11 @@ -import React from 'react'; +import { useRef } from 'react'; import { useTrackedState } from './store'; import TodoItem from './TodoItem'; const TodoList = () => { const state = useTrackedState(); - const ref = React.useRef(null); + const ref = useRef(null); const { todos } = state; return (
      diff --git a/examples/15_reactmemoref/src/App.tsx b/examples/15_reactmemoref/src/app.tsx similarity index 85% rename from examples/15_reactmemoref/src/App.tsx rename to examples/15_reactmemoref/src/app.tsx index 36a94204..70fd75cc 100644 --- a/examples/15_reactmemoref/src/App.tsx +++ b/examples/15_reactmemoref/src/app.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import { Provider } from './store'; import TodoList from './TodoList'; diff --git a/examples/15_reactmemoref/src/index.ts b/examples/15_reactmemoref/src/index.ts deleted file mode 100644 index ba847f04..00000000 --- a/examples/15_reactmemoref/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (!ele) throw new Error('no app'); -createRoot(ele).render(React.createElement(App)); diff --git a/examples/15_reactmemoref/src/index.tsx b/examples/15_reactmemoref/src/index.tsx new file mode 100644 index 00000000..10774d1c --- /dev/null +++ b/examples/15_reactmemoref/src/index.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +const ele = document.getElementById('app'); +if (ele) { + createRoot(ele).render( + + + , + ); +} diff --git a/examples/15_reactmemoref/src/store.ts b/examples/15_reactmemoref/src/store.ts index dc3c5d0f..4debac3f 100644 --- a/examples/15_reactmemoref/src/store.ts +++ b/examples/15_reactmemoref/src/store.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; export type TodoType = { From d52fc07538903324b5c2c930d6bc5eb9b40dfc0a Mon Sep 17 00:00:00 2001 From: daishi Date: Mon, 29 Apr 2024 23:01:07 +0900 Subject: [PATCH 19/25] fix lint and types --- .eslintrc.cjs | 2 +- examples/02_person/src/state.ts | 3 ++- examples/04_selector/src/state.ts | 3 ++- examples/05_container/src/state.ts | 3 ++- examples/06_customhook/src/app.tsx | 2 -- examples/07_todolist/src/components/VisibleTodoList.tsx | 2 -- examples/08_comparison/src/ContextWithMemo.tsx | 4 ++-- examples/08_comparison/src/SplitContext.tsx | 4 ++-- examples/09_reactmemo/src/TodoItem.tsx | 3 +-- examples/09_reactmemo/src/store.ts | 3 ++- examples/10_untracked/src/store.ts | 4 ++-- examples/11_form/src/form.ts | 3 ++- examples/11_form/src/person-form.tsx | 9 +++++---- examples/15_reactmemoref/src/TodoItem.tsx | 2 -- src/createContainer.ts | 5 ++--- src/createTrackedSelector.ts | 2 +- src/index.ts | 4 ++-- 17 files changed, 28 insertions(+), 30 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 83565100..e6b6b2c6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -14,7 +14,7 @@ module.exports = { 'plugin:jsx-a11y/recommended', 'prettier', ], - ignorePatterns: ['dist/'], + ignorePatterns: ['dist/', 'website/'], settings: { 'import/resolver': { typescript: true, diff --git a/examples/02_person/src/state.ts b/examples/02_person/src/state.ts index 37f6c4c9..216f99c3 100644 --- a/examples/02_person/src/state.ts +++ b/examples/02_person/src/state.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; diff --git a/examples/04_selector/src/state.ts b/examples/04_selector/src/state.ts index 3273b1c8..765230d7 100644 --- a/examples/04_selector/src/state.ts +++ b/examples/04_selector/src/state.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; diff --git a/examples/05_container/src/state.ts b/examples/05_container/src/state.ts index 69932ab9..9f660322 100644 --- a/examples/05_container/src/state.ts +++ b/examples/05_container/src/state.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; const initialState = { count: 0, diff --git a/examples/06_customhook/src/app.tsx b/examples/06_customhook/src/app.tsx index 42cc6588..4fa5d0c1 100644 --- a/examples/06_customhook/src/app.tsx +++ b/examples/06_customhook/src/app.tsx @@ -5,12 +5,10 @@ import { createContainer } from 'react-tracked'; const useValue = () => { const [count, setCountOrig] = useState(0); const setCount = (nextCount: number) => { - // eslint-disable-next-line no-console console.log({ nextCount }); setCountOrig(nextCount); }; useEffect(() => { - // eslint-disable-next-line no-console console.log({ count }); }); return [count, setCount] as const; diff --git a/examples/07_todolist/src/components/VisibleTodoList.tsx b/examples/07_todolist/src/components/VisibleTodoList.tsx index f8b578a2..518a0dcc 100644 --- a/examples/07_todolist/src/components/VisibleTodoList.tsx +++ b/examples/07_todolist/src/components/VisibleTodoList.tsx @@ -1,5 +1,3 @@ -/* eslint-disable react/jsx-props-no-spreading */ - import useVisibleTodos from '../hooks/useVisibleTodos'; import useToggleTodo from '../hooks/useToggleTodo'; import Todo from './Todo'; diff --git a/examples/08_comparison/src/ContextWithMemo.tsx b/examples/08_comparison/src/ContextWithMemo.tsx index 74a97c3c..d843b45f 100644 --- a/examples/08_comparison/src/ContextWithMemo.tsx +++ b/examples/08_comparison/src/ContextWithMemo.tsx @@ -1,5 +1,3 @@ -/* eslint react/display-name: off */ - import { createContext, memo, @@ -37,6 +35,7 @@ const PersonContext = createContext<[State, Dispatch]>([ () => null, ]); +// eslint-disable-next-line react/display-name const InnerPersonFirstName = memo( ({ firstName, dispatch }: { firstName: string; dispatch: Dispatch }) => { const renders = useRef(1); @@ -65,6 +64,7 @@ const PersonFirstName = () => { ); }; +// eslint-disable-next-line react/display-name const InnerPersonFamilyName = memo( ({ familyName, dispatch }: { familyName: string; dispatch: Dispatch }) => { const renders = useRef(1); diff --git a/examples/08_comparison/src/SplitContext.tsx b/examples/08_comparison/src/SplitContext.tsx index cf3182d4..4806ee4f 100644 --- a/examples/08_comparison/src/SplitContext.tsx +++ b/examples/08_comparison/src/SplitContext.tsx @@ -1,5 +1,3 @@ -/* eslint react/display-name: off */ - import { createContext, memo, @@ -55,6 +53,7 @@ const PersonContext2 = createContext<[State2, Dispatch2]>([ () => null, ]); +// eslint-disable-next-line react/display-name const PersonFirstName = memo(() => { const [state, dispatch] = useContext(PersonContext1); const renders = useRef(1); @@ -75,6 +74,7 @@ const PersonFirstName = memo(() => { ); }); +// eslint-disable-next-line react/display-name const PersonFamilyName = memo(() => { const [state, dispatch] = useContext(PersonContext2); const renders = useRef(1); diff --git a/examples/09_reactmemo/src/TodoItem.tsx b/examples/09_reactmemo/src/TodoItem.tsx index ce81f53a..29bbe7ba 100644 --- a/examples/09_reactmemo/src/TodoItem.tsx +++ b/examples/09_reactmemo/src/TodoItem.tsx @@ -1,5 +1,3 @@ -/* eslint react/display-name: off */ - import { memo } from 'react'; import { useDispatch } from './store'; @@ -11,6 +9,7 @@ type Props = { let numRendered = 0; +// eslint-disable-next-line react/display-name const TodoItem = memo(({ todo }: Props) => { const dispatch = useDispatch(); return ( diff --git a/examples/09_reactmemo/src/store.ts b/examples/09_reactmemo/src/store.ts index dc3c5d0f..4debac3f 100644 --- a/examples/09_reactmemo/src/store.ts +++ b/examples/09_reactmemo/src/store.ts @@ -1,4 +1,5 @@ -import { useReducer, Reducer } from 'react'; +import { useReducer } from 'react'; +import type { Reducer } from 'react'; import { createContainer } from 'react-tracked'; export type TodoType = { diff --git a/examples/10_untracked/src/store.ts b/examples/10_untracked/src/store.ts index 9e4b6d19..e1252f8c 100644 --- a/examples/10_untracked/src/store.ts +++ b/examples/10_untracked/src/store.ts @@ -1,4 +1,5 @@ -import { useReducer, useCallback, Reducer } from 'react'; +import { useReducer, useCallback } from 'react'; +import type { Reducer } from 'react'; import { createContainer, getUntrackedObject } from 'react-tracked'; export type TodoType = { @@ -88,7 +89,6 @@ const { useUpdate: useDispatch, } = createContainer(useValue, { concurrentMode: true }); -// eslint-disable-next-line arrow-parens const untrackDeep = (obj: T) => { if (typeof obj !== 'object' || obj === null) return obj; const untrackedObj = getUntrackedObject(obj); diff --git a/examples/11_form/src/form.ts b/examples/11_form/src/form.ts index 1dec986c..e932eaae 100644 --- a/examples/11_form/src/form.ts +++ b/examples/11_form/src/form.ts @@ -1,4 +1,5 @@ -import { ChangeEvent, useState, useCallback, useLayoutEffect } from 'react'; +import { useState, useCallback, useLayoutEffect } from 'react'; +import type { ChangeEvent } from 'react'; import { createContainer, getUntrackedObject } from 'react-tracked'; diff --git a/examples/11_form/src/person-form.tsx b/examples/11_form/src/person-form.tsx index bec78447..3c3fef2b 100644 --- a/examples/11_form/src/person-form.tsx +++ b/examples/11_form/src/person-form.tsx @@ -1,6 +1,3 @@ -/* eslint react/jsx-props-no-spreading: off */ -/* eslint react/display-name: off */ - import { memo } from 'react'; import type { FormEvent } from 'react'; @@ -19,6 +16,7 @@ const validateName = (name: unknown) => { return null; }; +// eslint-disable-next-line react/display-name const FirstName = memo(() => (
      numRendered: {++numRendered} @@ -30,6 +28,7 @@ const FirstName = memo(() => (
      )); +// eslint-disable-next-line react/display-name const FamilyName = memo(() => (
      numRendered: {++numRendered} @@ -41,6 +40,7 @@ const FamilyName = memo(() => (
      )); +// eslint-disable-next-line react/display-name const Gender = memo(() => (
      numRendered: {++numRendered} @@ -56,6 +56,7 @@ const Gender = memo(() => (
      )); +// eslint-disable-next-line react/display-name const Teenager = memo(() => (
      numRendered: {++numRendered} @@ -67,11 +68,11 @@ const Teenager = memo(() => (
      )); +// eslint-disable-next-line react/display-name const PersonForm = memo(() => { const formValues = useFormValues(); const onSubmit = (event: FormEvent) => { event.preventDefault(); - // eslint-disable-next-line no-console console.log(formValues); }; return ( diff --git a/examples/15_reactmemoref/src/TodoItem.tsx b/examples/15_reactmemoref/src/TodoItem.tsx index 4e7f85b8..edf4cbd9 100644 --- a/examples/15_reactmemoref/src/TodoItem.tsx +++ b/examples/15_reactmemoref/src/TodoItem.tsx @@ -4,8 +4,6 @@ import { useDispatch } from './store'; import type { TodoType } from './store'; type Props = { - // FIXME why this complaints? - // eslint-disable-next-line react/no-unused-prop-types todo: TodoType; }; diff --git a/src/createContainer.ts b/src/createContainer.ts index 98a63357..adcbadb3 100644 --- a/src/createContainer.ts +++ b/src/createContainer.ts @@ -1,5 +1,3 @@ -/* eslint react/destructuring-assignment: off */ - import { createContext as createContextOrig, createElement, @@ -22,8 +20,9 @@ import type { Context, } from 'use-context-selector'; -import { createTrackedSelector } from './createTrackedSelector'; +import { createTrackedSelector } from './createTrackedSelector.js'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyFunction = (...args: any[]) => any; type Options = { defaultState?: State; diff --git a/src/createTrackedSelector.ts b/src/createTrackedSelector.ts index f3837200..fe0ec28f 100644 --- a/src/createTrackedSelector.ts +++ b/src/createTrackedSelector.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect, useMemo, useReducer, useRef } from 'react'; import { createProxy, isChanged } from 'proxy-compare'; -import { useAffectedDebugValue } from './utils'; +import { useAffectedDebugValue } from './utils.js'; export const createTrackedSelector = ( useSelector: (selector: (state: State) => Selected) => Selected, diff --git a/src/index.ts b/src/index.ts index 97ae345e..b15447ca 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,3 @@ -export { createContainer } from './createContainer'; -export { createTrackedSelector } from './createTrackedSelector'; +export { createContainer } from './createContainer.js'; +export { createTrackedSelector } from './createTrackedSelector.js'; export { getUntracked as getUntrackedObject } from 'proxy-compare'; From 62a74e8c520ff7f960d9af7f14730a4e62722007 Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:04:04 +0900 Subject: [PATCH 20/25] wip: e2e --- jest-puppeteer.config.js | 6 - package.json | 22 +- pnpm-lock.yaml | 1044 ++++++++++++++++- tests/e2e/{01_minimal.ts => 01_counter.ts} | 4 +- tests/e2e/{02_typescript.ts => 02_person.ts} | 4 +- tests/e2e/03_usestate.ts | 4 +- tests/e2e/04_selector.ts | 4 +- tests/e2e/05_container.ts | 4 +- tests/e2e/06_customhook.ts | 4 +- tests/e2e/07_todolist.ts | 4 +- tests/e2e/08_comparison.ts | 4 +- tests/e2e/09_reactmemo.ts | 4 +- tests/e2e/10_untracked.ts | 4 +- tests/e2e/11_form.ts | 4 +- tests/e2e/12_async.ts | 4 +- tests/e2e/13_saga.ts | 4 +- tests/e2e/14_dynamic.ts | 4 +- tests/e2e/15_reactmemoref.ts | 4 +- tests/e2e/__snapshots__/01_minimal.ts.snap | 129 -- tests/e2e/__snapshots__/02_typescript.ts.snap | 145 --- tests/e2e/__snapshots__/03_usestate.ts.snap | 121 -- tests/e2e/__snapshots__/04_selector.ts.snap | 113 -- tests/e2e/__snapshots__/05_container.ts.snap | 161 --- tests/e2e/__snapshots__/06_customhook.ts.snap | 65 - tests/e2e/__snapshots__/07_todolist.ts.snap | 225 ---- tests/e2e/__snapshots__/08_comparison.ts.snap | 89 -- tests/e2e/__snapshots__/09_reactmemo.ts.snap | 49 - tests/e2e/__snapshots__/10_untracked.ts.snap | 89 -- tests/e2e/__snapshots__/11_form.ts.snap | 89 -- tests/e2e/__snapshots__/12_async.ts.snap | 41 - tests/e2e/__snapshots__/13_saga.ts.snap | 41 - tests/e2e/__snapshots__/14_dynamic.ts.snap | 97 -- .../e2e/__snapshots__/15_reactmemoref.ts.snap | 49 - vitest.workspace.ts | 18 + 34 files changed, 1107 insertions(+), 1546 deletions(-) delete mode 100644 jest-puppeteer.config.js rename tests/e2e/{01_minimal.ts => 01_counter.ts} (97%) rename tests/e2e/{02_typescript.ts => 02_person.ts} (97%) delete mode 100644 tests/e2e/__snapshots__/01_minimal.ts.snap delete mode 100644 tests/e2e/__snapshots__/02_typescript.ts.snap delete mode 100644 tests/e2e/__snapshots__/03_usestate.ts.snap delete mode 100644 tests/e2e/__snapshots__/04_selector.ts.snap delete mode 100644 tests/e2e/__snapshots__/05_container.ts.snap delete mode 100644 tests/e2e/__snapshots__/06_customhook.ts.snap delete mode 100644 tests/e2e/__snapshots__/07_todolist.ts.snap delete mode 100644 tests/e2e/__snapshots__/08_comparison.ts.snap delete mode 100644 tests/e2e/__snapshots__/09_reactmemo.ts.snap delete mode 100644 tests/e2e/__snapshots__/10_untracked.ts.snap delete mode 100644 tests/e2e/__snapshots__/11_form.ts.snap delete mode 100644 tests/e2e/__snapshots__/12_async.ts.snap delete mode 100644 tests/e2e/__snapshots__/13_saga.ts.snap delete mode 100644 tests/e2e/__snapshots__/14_dynamic.ts.snap delete mode 100644 tests/e2e/__snapshots__/15_reactmemoref.ts.snap create mode 100644 vitest.workspace.ts diff --git a/jest-puppeteer.config.js b/jest-puppeteer.config.js deleted file mode 100644 index 0cc4c183..00000000 --- a/jest-puppeteer.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - launch: { - headless: process.env.HEADLESS === 'false' ? false : 'new', - slowMo: process.env.SLOWMO ? process.env.SLOWMO : 0, - }, -}; diff --git a/package.json b/package.json index 6260f926..6e792515 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,23 @@ "test:lint": "eslint .", "test:types": "tsc -p . --noEmit", "test:types:examples": "tsc -p examples --noEmit", - "test:spec": "vitest run", - "text:e2e": "echo 'TODO'", + "test:spec": "vitest run --project=spec", + "test:e2e": "run-s e2e:*", + "e2e:01_counter": "server-test examples:01_counter http://localhost:8080 'vitest run --project=e2e 01_counter'", + "e2e:02_person": "server-test examples:02_person http://localhost:8080 'vitest run --project=e2e 02_person'", + "e2e:03_setstate": "server-test examples:03_setstate http://localhost:8080 'vitest run --project=e2e 03_setstate'", + "e2e:04_selector": "server-test examples:04_selector http://localhost:8080 'vitest run --project=e2e 04_selector'", + "e2e:05_container": "server-test examples:05_container http://localhost:8080 'vitest run --project=e2e 05_container'", + "e2e:06_customhook": "server-test examples:06_customhook http://localhost:8080 'vitest run --project=e2e 06_customhook'", + "e2e:07_todolist": "server-test examples:07_todolist http://localhost:8080 'vitest run --project=e2e 07_todolist'", + "e2e:08_comparison": "server-test examples:08_comparison http://localhost:8080 'vitest run --project=e2e 08_comparison'", + "e2e:09_reactmemo": "server-test examples:09_reactmemo http://localhost:8080 'vitest run --project=e2e 09_reactmemo'", + "e2e:10_untracked": "server-test examples:10_untracked http://localhost:8080 'vitest run --project=e2e 10_untracked'", + "e2e:11_form": "server-test examples:11_form http://localhost:8080 'vitest run --project=e2e 11_form'", + "e2e:12_async": "server-test examples:12_async http://localhost:8080 'vitest run --project=e2e 12_async'", + "e2e:13_saga": "server-test examples:13_saga http://localhost:8080 'vitest run --project=e2e 13_saga'", + "e2e:14_dynamic": "server-test examples:14_dynamic http://localhost:8080 'vitest run --project=e2e 14_dynamic'", + "e2e:15_reactmemoref": "server-test examples:15_reactmemoref http://localhost:8080 'vitest run --project=e2e 15_reactmemoref'", "examples:01_counter": "DIR=01_counter vite", "examples:02_person": "DIR=02_person vite", "examples:03_usestate": "DIR=03_usestate vite", @@ -93,10 +108,13 @@ "eslint-plugin-react-hooks": "^4.6.2", "happy-dom": "^14.7.1", "immer": "^10.1.1", + "npm-run-all": "^4.1.5", "prettier": "^3.2.5", + "puppeteer": "^22.7.1", "react": "^18.3.1", "react-dom": "^18.3.1", "redux-saga": "^1.3.0", + "start-server-and-test": "^2.0.3", "ts-expect": "^1.3.0", "typescript": "^5.4.5", "use-reducer-async": "^2.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 826c788a..31a39cb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,9 +67,15 @@ devDependencies: immer: specifier: ^10.1.1 version: 10.1.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 prettier: specifier: ^3.2.5 version: 3.2.5 + puppeteer: + specifier: ^22.7.1 + version: 22.7.1(typescript@5.4.5) react: specifier: ^18.3.1 version: 18.3.1 @@ -79,6 +85,9 @@ devDependencies: redux-saga: specifier: ^1.3.0 version: 1.3.0 + start-server-and-test: + specifier: ^2.0.3 + version: 2.0.3 ts-expect: specifier: ^1.3.0 version: 1.3.0 @@ -378,6 +387,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: true + + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -430,6 +449,23 @@ packages: fastq: 1.17.1 dev: true + /@puppeteer/browsers@2.2.3: + resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} + engines: {node: '>=18'} + hasBin: true + dependencies: + debug: 4.3.4 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.0 + tar-fs: 3.0.5 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + /@redux-saga/core@1.3.0: resolution: {integrity: sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA==} dependencies: @@ -595,6 +631,20 @@ packages: dev: true optional: true + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: true + + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: true + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -668,6 +718,10 @@ packages: '@testing-library/dom': 10.1.0 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 @@ -711,6 +765,14 @@ packages: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.12.7 + dev: true + optional: true + /@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} @@ -905,6 +967,15 @@ packages: hasBin: true dev: true + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -938,6 +1009,10 @@ packages: engines: {node: '>=10'} dev: true + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -1058,6 +1133,17 @@ packages: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + 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'} @@ -1070,16 +1156,81 @@ packages: engines: {node: '>=4'} dev: true + /axios@1.6.8(debug@4.3.4): + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + dependencies: + follow-redirects: 1.15.6(debug@4.3.4) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 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.2: + resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} + requiresBuild: true + dev: true + optional: true + + /bare-fs@2.3.0: + resolution: {integrity: sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==} + requiresBuild: true + dependencies: + bare-events: 2.2.2 + bare-path: 2.1.2 + bare-stream: 1.0.0 + dev: true + optional: true + + /bare-os@2.3.0: + resolution: {integrity: sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==} + requiresBuild: true + dev: true + optional: true + + /bare-path@2.1.2: + resolution: {integrity: sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==} + requiresBuild: true + dependencies: + bare-os: 2.3.0 + dev: true + optional: true + + /bare-stream@1.0.0: + resolution: {integrity: sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==} + requiresBuild: true + dependencies: + streamx: 2.16.1 + dev: true + optional: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1100,6 +1251,17 @@ packages: fill-range: 7.0.1 dev: true + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1165,6 +1327,31 @@ packages: get-func-name: 2.0.2 dev: true + /check-more-types@2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + + /chromium-bidi@0.5.19(devtools-protocol@0.0.1273771): + resolution: {integrity: sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==} + peerDependencies: + devtools-protocol: '*' + dependencies: + devtools-protocol: 0.0.1273771 + mitt: 3.0.1 + urlpattern-polyfill: 10.0.0 + zod: 3.22.4 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -1186,6 +1373,13 @@ 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 + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1194,6 +1388,33 @@ packages: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} dev: true + /cosmiconfig@9.0.0(typescript@5.4.5): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.4.5 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1215,6 +1436,11 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true + /data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + dev: true + /data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -1294,11 +1520,29 @@ 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 + + /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'} dev: true + /devtools-protocol@0.0.1273771: + resolution: {integrity: sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==} + dev: true + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1333,10 +1577,24 @@ packages: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} dev: true + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + 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 + /enhanced-resolve@5.16.0: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} @@ -1350,6 +1608,17 @@ packages: engines: {node: '>=0.12'} dev: true + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + /es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -1496,6 +1765,11 @@ packages: '@esbuild/win32-x64': 0.20.2 dev: true + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1506,6 +1780,18 @@ packages: engines: {node: '>=10'} 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.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -1743,6 +2029,12 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -1773,6 +2065,33 @@ packages: engines: {node: '>=0.10.0'} dev: true + /event-stream@3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -1788,10 +2107,28 @@ packages: strip-final-newline: 3.0.0 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@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.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -1817,6 +2154,12 @@ 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 + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1852,12 +2195,46 @@ packages: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true + /follow-redirects@1.15.6(debug@4.3.4): + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4 + dev: true + /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 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 + + /from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + 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.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -1888,6 +2265,11 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true @@ -1903,6 +2285,18 @@ packages: hasown: 2.0.2 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'} @@ -1923,6 +2317,18 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-uri@6.0.3: + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + engines: {node: '>= 14'} + dependencies: + basic-ftp: 5.0.5 + 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'} @@ -2041,11 +2447,44 @@ packages: function-bind: 1.1.2 dev: true + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} dev: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -2093,6 +2532,14 @@ packages: side-channel: 1.0.6 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-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -2101,6 +2548,10 @@ packages: get-intrinsic: 1.2.4 dev: true + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} @@ -2158,6 +2609,11 @@ packages: call-bind: 1.0.7 dev: true + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -2219,6 +2675,11 @@ packages: call-bind: 1.0.7 dev: true + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2282,6 +2743,16 @@ packages: set-function-name: 2.0.2 dev: true + /joi@17.13.0: + resolution: {integrity: sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2296,10 +2767,22 @@ packages: argparse: 2.0.1 dev: true + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + dev: true + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -2315,6 +2798,14 @@ packages: minimist: 1.2.8 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 + /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -2342,6 +2833,11 @@ packages: language-subtag-registry: 0.3.22 dev: true + /lazy-ass@1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2350,11 +2846,25 @@ packages: type-check: 0.4.0 dev: true - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.6.1 + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.6.1 pkg-types: 1.1.0 dev: true @@ -2392,6 +2902,11 @@ 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 @@ -2403,6 +2918,15 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + dev: true + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -2420,6 +2944,23 @@ 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@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -2447,6 +2988,10 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true + /mlly@1.6.1: resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: @@ -2474,6 +3019,47 @@ 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 + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.1 + string.prototype.padend: 3.1.6 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2557,6 +3143,13 @@ packages: wrappy: 1.0.2 dev: true + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -2597,6 +3190,30 @@ packages: p-limit: 3.1.0 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.1 + 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.3 + 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'} @@ -2604,6 +3221,24 @@ packages: callsites: 3.1.0 dev: true + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.24.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2614,6 +3249,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2628,6 +3268,13 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -2641,6 +3288,16 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true + /pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: true + + /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 @@ -2650,6 +3307,17 @@ packages: engines: {node: '>=8.6'} dev: true + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + /pkg-types@1.1.0: resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} dependencies: @@ -2701,6 +3369,11 @@ packages: react-is: 18.3.1 dev: true + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: @@ -2709,19 +3382,90 @@ packages: react-is: 16.13.1 dev: true + /proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + 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.3 + transitivePeerDependencies: + - supports-color + dev: true + /proxy-compare@3.0.0: resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} dev: false + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /ps-tree@1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: true + + /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@22.7.1: + resolution: {integrity: sha512-jD7T7yN7PWGuJmNT0TAEboA26s0VVnvbgCxqgQIF+eNQW2u71ENaV2JwzSJiCHO+e72H4Ue6AgKD9USQ8xAcOQ==} + engines: {node: '>=18'} + dependencies: + '@puppeteer/browsers': 2.2.3 + chromium-bidi: 0.5.19(devtools-protocol@0.0.1273771) + debug: 4.3.4 + devtools-protocol: 0.0.1273771 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /puppeteer@22.7.1(typescript@5.4.5): + resolution: {integrity: sha512-JBCBCwQ9+dyPp5haqeecgv0N0vgWFx44woUeKJaPeJT8CU3RXrd8F/tqJQbuAmcWlbMhYJSlTJkIFrwVAs6BNA==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + dependencies: + '@puppeteer/browsers': 2.2.3 + cosmiconfig: 9.0.0(typescript@5.4.5) + devtools-protocol: 0.0.1273771 + puppeteer-core: 22.7.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + 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 + /react-dom@18.3.1(react@18.3.1): resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -2750,6 +3494,15 @@ packages: dependencies: loose-envify: 1.4.0 + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -2791,6 +3544,11 @@ packages: set-function-name: 2.0.2 dev: true + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2862,6 +3620,12 @@ packages: queue-microtask: 1.2.3 dev: true + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -2886,6 +3650,11 @@ packages: dependencies: loose-envify: 1.4.0 + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2921,6 +3690,13 @@ packages: has-property-descriptors: 1.0.2 dev: true + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2928,11 +3704,20 @@ packages: shebang-regex: 3.0.0 dev: true + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -2947,6 +3732,10 @@ packages: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2957,19 +3746,123 @@ packages: engines: {node: '>=8'} dev: true + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + + /socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + 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.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} dev: true + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: true + optional: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.17 + dev: true + + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 + dev: true + + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + dev: true + + /split@0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + dependencies: + through: 2.3.8 + 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 + /start-server-and-test@2.0.3: + resolution: {integrity: sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==} + engines: {node: '>=16'} + hasBin: true + dependencies: + arg: 5.0.2 + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.4 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 7.2.0(debug@4.3.4) + transitivePeerDependencies: + - supports-color + dev: true + /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true + /stream-combiner@0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + dependencies: + duplexer: 0.1.2 + 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.2 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + /string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} @@ -2988,6 +3881,16 @@ packages: side-channel: 1.0.6 dev: true + /string.prototype.padend@3.1.6: + resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -3027,6 +3930,11 @@ packages: engines: {node: '>=4'} dev: true + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -3074,10 +3982,32 @@ packages: engines: {node: '>=6'} 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.3.0 + bare-path: 2.1.2 + 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 + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + /tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} dev: true @@ -3121,6 +4051,10 @@ packages: strip-bom: 3.0.0 dev: true + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3217,16 +4151,32 @@ 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@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 dev: true + /urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + dev: true + /use-context-selector@2.0.0-beta.0(react@18.3.1)(scheduler@0.23.2): resolution: {integrity: sha512-AODu0x/FzGXTWnVDD/zTSP6JQ3n5LWQm8PKJzrmzX9vQuXuw83Chf1pBYzq9TkCy2Hi1L1b8W02fBBbftKQrIA==} peerDependencies: @@ -3255,6 +4205,13 @@ packages: redux-saga: 1.3.0 dev: true + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + /vite-node@1.5.2(@types/node@20.12.7): resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3369,6 +4326,20 @@ packages: - terser dev: true + /wait-on@7.2.0(debug@4.3.4): + resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + axios: 1.6.8(debug@4.3.4) + joi: 17.13.0 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + dev: true + /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -3428,6 +4399,13 @@ packages: has-tostringtag: 1.0.2 dev: true + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3450,14 +4428,66 @@ packages: engines: {node: '>=0.10.0'} dev: true + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 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 + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + 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 + + /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'} @@ -3467,3 +4497,7 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true + + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: true diff --git a/tests/e2e/01_minimal.ts b/tests/e2e/01_counter.ts similarity index 97% rename from tests/e2e/01_minimal.ts rename to tests/e2e/01_counter.ts index 10b07afc..e00abc94 100644 --- a/tests/e2e/01_minimal.ts +++ b/tests/e2e/01_counter.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('01_minimal', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/02_typescript.ts b/tests/e2e/02_person.ts similarity index 97% rename from tests/e2e/02_typescript.ts rename to tests/e2e/02_person.ts index 0d7745bc..cb193406 100644 --- a/tests/e2e/02_typescript.ts +++ b/tests/e2e/02_person.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('02_typescript', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/03_usestate.ts b/tests/e2e/03_usestate.ts index 25e6560d..45f18f86 100644 --- a/tests/e2e/03_usestate.ts +++ b/tests/e2e/03_usestate.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('03_usestate', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/04_selector.ts b/tests/e2e/04_selector.ts index dd028a70..f9f9a940 100644 --- a/tests/e2e/04_selector.ts +++ b/tests/e2e/04_selector.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('04_selector', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/05_container.ts b/tests/e2e/05_container.ts index 665c540a..d944b06b 100644 --- a/tests/e2e/05_container.ts +++ b/tests/e2e/05_container.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('05_container', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/06_customhook.ts b/tests/e2e/06_customhook.ts index 1ab475b6..d96d0ea7 100644 --- a/tests/e2e/06_customhook.ts +++ b/tests/e2e/06_customhook.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('06_customhook', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/07_todolist.ts b/tests/e2e/07_todolist.ts index b33986a6..21b2adcb 100644 --- a/tests/e2e/07_todolist.ts +++ b/tests/e2e/07_todolist.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('07_todolist', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/08_comparison.ts b/tests/e2e/08_comparison.ts index df133876..6614b690 100644 --- a/tests/e2e/08_comparison.ts +++ b/tests/e2e/08_comparison.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('08_comparison', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/09_reactmemo.ts b/tests/e2e/09_reactmemo.ts index 00bd3a64..ab26d5ed 100644 --- a/tests/e2e/09_reactmemo.ts +++ b/tests/e2e/09_reactmemo.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('09_reactmemo', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/10_untracked.ts b/tests/e2e/10_untracked.ts index fa9ede3e..982f5a0c 100644 --- a/tests/e2e/10_untracked.ts +++ b/tests/e2e/10_untracked.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('10_untracked', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/11_form.ts b/tests/e2e/11_form.ts index 19948b52..134e0de6 100644 --- a/tests/e2e/11_form.ts +++ b/tests/e2e/11_form.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('11_form', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/12_async.ts b/tests/e2e/12_async.ts index a25ab707..baae0358 100644 --- a/tests/e2e/12_async.ts +++ b/tests/e2e/12_async.ts @@ -1,7 +1,6 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - // this test is not very stable because of timer describe('12_async', () => { const port = process.env.PORT || '8080'; @@ -11,6 +10,7 @@ describe('12_async', () => { }); it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/13_saga.ts b/tests/e2e/13_saga.ts index 6c321d62..5536265a 100644 --- a/tests/e2e/13_saga.ts +++ b/tests/e2e/13_saga.ts @@ -1,7 +1,6 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - // this test is not very stable because of timer describe('13_saga', () => { const port = process.env.PORT || '8080'; @@ -11,6 +10,7 @@ describe('13_saga', () => { }); it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/14_dynamic.ts b/tests/e2e/14_dynamic.ts index 5a42b181..07cac6cc 100644 --- a/tests/e2e/14_dynamic.ts +++ b/tests/e2e/14_dynamic.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('14_dynamic', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/15_reactmemoref.ts b/tests/e2e/15_reactmemoref.ts index aaa86c84..68850b69 100644 --- a/tests/e2e/15_reactmemoref.ts +++ b/tests/e2e/15_reactmemoref.ts @@ -1,11 +1,11 @@ +import { describe, expect, it } from 'vitest'; import puppeteer from 'puppeteer'; -jest.setTimeout(15 * 1000); - describe('15_reactmemoref', () => { const port = process.env.PORT || '8080'; it('should work with recorded events', async () => { + // eslint-disable-next-line import/no-named-as-default-member const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); diff --git a/tests/e2e/__snapshots__/01_minimal.ts.snap b/tests/e2e/__snapshots__/01_minimal.ts.snap deleted file mode 100644 index ab005ea9..00000000 --- a/tests/e2e/__snapshots__/01_minimal.ts.snap +++ /dev/null @@ -1,129 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`01_minimal should work with recorded events 1`] = ` -" -

      Counter

      numRendered: 26
      Count: 1
      numRendered: 28
      Count: 1

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 2`] = ` -" -

      Counter

      numRendered: 34
      Count: 2
      numRendered: 36
      Count: 2

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 3`] = ` -" -

      Counter

      numRendered: 42
      Count: 3
      numRendered: 44
      Count: 3

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 4`] = ` -" -

      Counter

      numRendered: 50
      Count: 2
      numRendered: 52
      Count: 2

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 5`] = ` -" -

      Counter

      numRendered: 58
      Count: 1
      numRendered: 60
      Count: 1

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 6`] = ` -" -

      Counter

      numRendered: 66
      Count: 0
      numRendered: 68
      Count: 0

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 7`] = ` -" -

      Counter

      numRendered: 74
      Count: -1
      numRendered: 76
      Count: -1

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 8`] = ` -" -

      Counter

      numRendered: 82
      Count: -2
      numRendered: 84
      Count: -2

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 9`] = ` -" -

      Counter

      numRendered: 90
      Count: -3
      numRendered: 92
      Count: -3

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 10`] = ` -" -

      Counter

      numRendered: 98
      Count: -2
      numRendered: 100
      Count: -2

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 11`] = ` -" -

      Counter

      numRendered: 106
      Count: -1
      numRendered: 108
      Count: -1

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 12`] = ` -" -

      Counter

      numRendered: 114
      Count: 0
      numRendered: 116
      Count: 0

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 13`] = ` -" -

      Counter

      numRendered: 114
      Count: 0
      numRendered: 116
      Count: 0

      TextBox

      numRendered: 6
      Text: hello
      numRendered: 8
      Text: hello
      - - -" -`; - -exports[`01_minimal should work with recorded events 14`] = ` -" -

      Counter

      numRendered: 114
      Count: 0
      numRendered: 116
      Count: 0

      TextBox

      numRendered: 126
      Text: hello1
      numRendered: 128
      Text: hello1
      - - -" -`; - -exports[`01_minimal should work with recorded events 15`] = ` -" -

      Counter

      numRendered: 114
      Count: 0
      numRendered: 116
      Count: 0

      TextBox

      numRendered: 134
      Text: hello12
      numRendered: 136
      Text: hello12
      - - -" -`; - -exports[`01_minimal should work with recorded events 16`] = ` -" -

      Counter

      numRendered: 114
      Count: 0
      numRendered: 116
      Count: 0

      TextBox

      numRendered: 142
      Text: hello123
      numRendered: 144
      Text: hello123
      - - -" -`; diff --git a/tests/e2e/__snapshots__/02_typescript.ts.snap b/tests/e2e/__snapshots__/02_typescript.ts.snap deleted file mode 100644 index 8f4c043b..00000000 --- a/tests/e2e/__snapshots__/02_typescript.ts.snap +++ /dev/null @@ -1,145 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`02_typescript should work with recorded events 1`] = ` -" -

      Counter

      numRendered: 18
      Count: 1
      numRendered: 20
      Count: 1

      Person

      numRendered: 2
      numRendered: 36
      Count: 1
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 40
      Count: 1
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 2`] = ` -" -

      Counter

      numRendered: 26
      Count: 2
      numRendered: 28
      Count: 2

      Person

      numRendered: 2
      numRendered: 52
      Count: 2
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 56
      Count: 2
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 3`] = ` -" -

      Counter

      numRendered: 34
      Count: 1
      numRendered: 36
      Count: 1

      Person

      numRendered: 2
      numRendered: 68
      Count: 1
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 72
      Count: 1
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 4`] = ` -" -

      Counter

      numRendered: 42
      Count: 0
      numRendered: 44
      Count: 0

      Person

      numRendered: 2
      numRendered: 84
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 88
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 5`] = ` -" -

      Counter

      numRendered: 50
      Count: 1
      numRendered: 52
      Count: 1

      Person

      numRendered: 2
      numRendered: 100
      Count: 1
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 104
      Count: 1
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 6`] = ` -" -

      Counter

      numRendered: 58
      Count: 2
      numRendered: 60
      Count: 2

      Person

      numRendered: 2
      numRendered: 116
      Count: 2
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 120
      Count: 2
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 7`] = ` -" -

      Counter

      numRendered: 66
      Count: 1
      numRendered: 68
      Count: 1

      Person

      numRendered: 2
      numRendered: 132
      Count: 1
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 136
      Count: 1
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 8`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 2
      numRendered: 148
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 152
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 9`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 2
      numRendered: 148
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 6
      numRendered: 152
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 10`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 162
      numRendered: 164a
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 166
      numRendered: 168a
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 11`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 178
      numRendered: 180ab
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 182
      numRendered: 184ab
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 12`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 194
      numRendered: 196abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 198
      numRendered: 200abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 13`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 210
      numRendered: 212abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 214
      numRendered: 216abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 14`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 226
      numRendered: 228abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 230
      numRendered: 232abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 15`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 242
      numRendered: 244abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 246
      numRendered: 248abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 16`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 258
      numRendered: 260abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 262
      numRendered: 264abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 17`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 274
      numRendered: 276abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 278
      numRendered: 280abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`02_typescript should work with recorded events 18`] = ` -" -

      Counter

      numRendered: 74
      Count: 0
      numRendered: 76
      Count: 0

      Person

      numRendered: 290
      numRendered: 292abc
      Count: 0
      First Name:
      Last Name:
      Age:
      numRendered: 294
      numRendered: 296abc
      Count: 0
      First Name:
      Last Name:
      Age:
      - - -" -`; diff --git a/tests/e2e/__snapshots__/03_usestate.ts.snap b/tests/e2e/__snapshots__/03_usestate.ts.snap deleted file mode 100644 index c6c12398..00000000 --- a/tests/e2e/__snapshots__/03_usestate.ts.snap +++ /dev/null @@ -1,121 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`03_usestate should work with recorded events 1`] = ` -" -

      Counter

      numRendered: 18
      Count: 1
      numRendered: 20
      Count: 1

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 2`] = ` -" -

      Counter

      numRendered: 26
      Count: 2
      numRendered: 28
      Count: 2

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 3`] = ` -" -

      Counter

      numRendered: 34
      Count: 3
      numRendered: 36
      Count: 3

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 4`] = ` -" -

      Counter

      numRendered: 42
      Count: 4
      numRendered: 44
      Count: 4

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 5`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 6`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 7`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 58
      First Name:
      Last Name:
      Age:
      numRendered: 60
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 8`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 66
      First Name:
      Last Name:
      Age:
      numRendered: 68
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 9`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 74
      First Name:
      Last Name:
      Age:
      numRendered: 76
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 10`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 82
      First Name:
      Last Name:
      Age:
      numRendered: 84
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 11`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 90
      First Name:
      Last Name:
      Age:
      numRendered: 92
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 12`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 98
      First Name:
      Last Name:
      Age:
      numRendered: 100
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 13`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 106
      First Name:
      Last Name:
      Age:
      numRendered: 108
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 14`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 114
      First Name:
      Last Name:
      Age:
      numRendered: 116
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`03_usestate should work with recorded events 15`] = ` -" -

      Counter

      numRendered: 50
      Count: 5
      numRendered: 52
      Count: 5

      Person

      numRendered: 122
      First Name:
      Last Name:
      Age:
      numRendered: 124
      First Name:
      Last Name:
      Age:
      - - -" -`; diff --git a/tests/e2e/__snapshots__/04_selector.ts.snap b/tests/e2e/__snapshots__/04_selector.ts.snap deleted file mode 100644 index 0ab021c4..00000000 --- a/tests/e2e/__snapshots__/04_selector.ts.snap +++ /dev/null @@ -1,113 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`04_selector should work with recorded events 1`] = ` -" -

      Counter

      numRendered: 14
      Count: 1
      numRendered: 16
      Count: 1

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 2`] = ` -" -

      Counter

      numRendered: 22
      Count: 0
      numRendered: 24
      Count: 0

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 3`] = ` -" -

      Counter

      numRendered: 30
      Count: 1
      numRendered: 32
      Count: 1

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 4`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 5`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 2
      First Name:
      Last Name:
      Age:
      numRendered: 4
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 6`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 46
      First Name:
      Last Name:
      Age:
      numRendered: 48
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 7`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 54
      First Name:
      Last Name:
      Age:
      numRendered: 56
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 8`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 62
      First Name:
      Last Name:
      Age:
      numRendered: 64
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 9`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 70
      First Name:
      Last Name:
      Age:
      numRendered: 72
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 10`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 78
      First Name:
      Last Name:
      Age:
      numRendered: 80
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 11`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 86
      First Name:
      Last Name:
      Age:
      numRendered: 88
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 12`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 94
      First Name:
      Last Name:
      Age:
      numRendered: 96
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 13`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 102
      First Name:
      Last Name:
      Age:
      numRendered: 104
      First Name:
      Last Name:
      Age:
      - - -" -`; - -exports[`04_selector should work with recorded events 14`] = ` -" -

      Counter

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Person

      numRendered: 110
      First Name:
      Last Name:
      Age:
      numRendered: 112
      First Name:
      Last Name:
      Age:
      - - -" -`; diff --git a/tests/e2e/__snapshots__/05_container.ts.snap b/tests/e2e/__snapshots__/05_container.ts.snap deleted file mode 100644 index 9e1d1e55..00000000 --- a/tests/e2e/__snapshots__/05_container.ts.snap +++ /dev/null @@ -1,161 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`05_container should work with recorded events 1`] = ` -" -

      First container

      numRendered: 30
      Count: 1
      numRendered: 32
      Count: 1

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 2`] = ` -" -

      First container

      numRendered: 38
      Count: 0
      numRendered: 40
      Count: 0

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 3`] = ` -" -

      First container

      numRendered: 46
      Count: -1
      numRendered: 48
      Count: -1

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 4`] = ` -" -

      First container

      numRendered: 54
      Count: 0
      numRendered: 56
      Count: 0

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 5`] = ` -" -

      First container

      numRendered: 62
      Count: 1
      numRendered: 64
      Count: 1

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 6`] = ` -" -

      First container

      numRendered: 70
      Count: 2
      numRendered: 72
      Count: 2

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 7`] = ` -" -

      First container

      numRendered: 78
      Count: 1
      numRendered: 80
      Count: 1

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 8`] = ` -" -

      First container

      numRendered: 86
      Count: 0
      numRendered: 88
      Count: 0

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 9`] = ` -" -

      First container

      numRendered: 94
      Count: -1
      numRendered: 96
      Count: -1

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 10`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 6
      Count: 0
      numRendered: 8
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 11`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 110
      Count: 1
      numRendered: 112
      Count: 1
      - - -" -`; - -exports[`05_container should work with recorded events 12`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 118
      Count: 0
      numRendered: 120
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 13`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 126
      Count: -1
      numRendered: 128
      Count: -1
      - - -" -`; - -exports[`05_container should work with recorded events 14`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 134
      Count: 0
      numRendered: 136
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 15`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 142
      Count: 1
      numRendered: 144
      Count: 1
      - - -" -`; - -exports[`05_container should work with recorded events 16`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 150
      Count: 2
      numRendered: 152
      Count: 2
      - - -" -`; - -exports[`05_container should work with recorded events 17`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 158
      Count: 1
      numRendered: 160
      Count: 1
      - - -" -`; - -exports[`05_container should work with recorded events 18`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 166
      Count: 0
      numRendered: 168
      Count: 0
      - - -" -`; - -exports[`05_container should work with recorded events 19`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 174
      Count: -1
      numRendered: 176
      Count: -1
      - - -" -`; - -exports[`05_container should work with recorded events 20`] = ` -" -

      First container

      numRendered: 102
      Count: -2
      numRendered: 104
      Count: -2

      Second container

      numRendered: 182
      Count: -2
      numRendered: 184
      Count: -2
      - - -" -`; diff --git a/tests/e2e/__snapshots__/06_customhook.ts.snap b/tests/e2e/__snapshots__/06_customhook.ts.snap deleted file mode 100644 index 780bce2f..00000000 --- a/tests/e2e/__snapshots__/06_customhook.ts.snap +++ /dev/null @@ -1,65 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`06_customhook should work with recorded events 1`] = ` -" -
      Count: 1
      Count: 1
      - - -" -`; - -exports[`06_customhook should work with recorded events 2`] = ` -" -
      Count: 2
      Count: 2
      - - -" -`; - -exports[`06_customhook should work with recorded events 3`] = ` -" -
      Count: 1
      Count: 1
      - - -" -`; - -exports[`06_customhook should work with recorded events 4`] = ` -" -
      Count: 0
      Count: 0
      - - -" -`; - -exports[`06_customhook should work with recorded events 5`] = ` -" -
      Count: 1
      Count: 1
      - - -" -`; - -exports[`06_customhook should work with recorded events 6`] = ` -" -
      Count: 2
      Count: 2
      - - -" -`; - -exports[`06_customhook should work with recorded events 7`] = ` -" -
      Count: 1
      Count: 1
      - - -" -`; - -exports[`06_customhook should work with recorded events 8`] = ` -" -
      Count: 0
      Count: 0
      - - -" -`; diff --git a/tests/e2e/__snapshots__/07_todolist.ts.snap b/tests/e2e/__snapshots__/07_todolist.ts.snap deleted file mode 100644 index ee495ba7..00000000 --- a/tests/e2e/__snapshots__/07_todolist.ts.snap +++ /dev/null @@ -1,225 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`07_todolist should work with recorded events 1`] = ` -" -
        Show:
        - - -" -`; - -exports[`07_todolist should work with recorded events 2`] = ` -" -
          Show:
          - - -" -`; - -exports[`07_todolist should work with recorded events 3`] = ` -" -
            Show:
            - - -" -`; - -exports[`07_todolist should work with recorded events 4`] = ` -" -
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 5`] = ` -" -
              • aaa
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 6`] = ` -" -
              • aaa
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 7`] = ` -" -
              • aaa
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 8`] = ` -" -
              • aaa
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 9`] = ` -" -
              • aaa
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 10`] = ` -" -
              • aaa
              • bbb
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 11`] = ` -" -
              • aaa
              • bbb
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 12`] = ` -" -
              • aaa
              • bbb
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 13`] = ` -" -
              • aaa
              • bbb
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 14`] = ` -" -
              • aaa
              • bbb
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 15`] = ` -" -
              • aaa
              • bbb
              • ccc
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 16`] = ` -" -
              • aaa
              • bbb
              • ccc
              Show:
              - - -" -`; - -exports[`07_todolist should work with recorded events 17`] = ` -" -
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 18`] = ` -" -
                • aaa
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 19`] = ` -" -
                • aaa
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 20`] = ` -" -
                • aaa
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 21`] = ` -" -
                • bbb
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 22`] = ` -" -
                • aaa
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 23`] = ` -" -
                • aaa
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 24`] = ` -" -
                • aaa
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 25`] = ` -" -
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 26`] = ` -" -
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 27`] = ` -" -
                • aaa
                • bbb
                • ccc
                Show:
                - - -" -`; - -exports[`07_todolist should work with recorded events 28`] = ` -" -
                • aaa
                • bbb
                Show:
                - - -" -`; diff --git a/tests/e2e/__snapshots__/08_comparison.ts.snap b/tests/e2e/__snapshots__/08_comparison.ts.snap deleted file mode 100644 index 6ab68aeb..00000000 --- a/tests/e2e/__snapshots__/08_comparison.ts.snap +++ /dev/null @@ -1,89 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`08_comparison should work with recorded events 1`] = ` -" -

                Naive Context

                First Name:(renders:1)
                Family Name:(renders:1)

                Split Context

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with React.memo

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 2`] = ` -" -

                Naive Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Split Context

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with React.memo

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 3`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with React.memo

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 4`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:1)

                Context with React.memo

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 5`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:1)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 6`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:1)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 7`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with useMemo

                First Name:(renders:2)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 8`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with useMemo

                First Name:(renders:4)
                Family Name:(renders:2)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 9`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with useMemo

                First Name:(renders:4)
                Family Name:(renders:4)

                react-tracked

                First Name:(renders:1)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 10`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with useMemo

                First Name:(renders:4)
                Family Name:(renders:4)

                react-tracked

                First Name:(renders:3)
                Family Name:(renders:1)
                - - -" -`; - -exports[`08_comparison should work with recorded events 11`] = ` -" -

                Naive Context

                First Name:(renders:4)
                Family Name:(renders:4)

                Split Context

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with React.memo

                First Name:(renders:3)
                Family Name:(renders:3)

                Context with useMemo

                First Name:(renders:4)
                Family Name:(renders:4)

                react-tracked

                First Name:(renders:3)
                Family Name:(renders:3)
                - - -" -`; diff --git a/tests/e2e/__snapshots__/09_reactmemo.ts.snap b/tests/e2e/__snapshots__/09_reactmemo.ts.snap deleted file mode 100644 index 8aeeb9c4..00000000 --- a/tests/e2e/__snapshots__/09_reactmemo.ts.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`09_reactmemo should work with recorded events 1`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 2Study JS
                • numRendered: 3Buy ticket
                - - -" -`; - -exports[`09_reactmemo should work with recorded events 2`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 5Study JS
                • numRendered: 3Buy ticket
                - - -" -`; - -exports[`09_reactmemo should work with recorded events 3`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 5Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`09_reactmemo should work with recorded events 4`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 5Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`09_reactmemo should work with recorded events 5`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 8Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`09_reactmemo should work with recorded events 6`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 8Study JS
                • numRendered: 9Buy ticket
                - - -" -`; diff --git a/tests/e2e/__snapshots__/10_untracked.ts.snap b/tests/e2e/__snapshots__/10_untracked.ts.snap deleted file mode 100644 index 69f7151f..00000000 --- a/tests/e2e/__snapshots__/10_untracked.ts.snap +++ /dev/null @@ -1,89 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`10_untracked should work with recorded events 1`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 2`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 3`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 4`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 5`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 6`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 7`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 8`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 9`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 10`] = ` -" -
                - - -" -`; - -exports[`10_untracked should work with recorded events 11`] = ` -" -
                - - -" -`; diff --git a/tests/e2e/__snapshots__/11_form.ts.snap b/tests/e2e/__snapshots__/11_form.ts.snap deleted file mode 100644 index 783581b8..00000000 --- a/tests/e2e/__snapshots__/11_form.ts.snap +++ /dev/null @@ -1,89 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`11_form should work with recorded events 1`] = ` -" -
                numRendered: 42

                First Name

                numRendered: 44
                First Name:name is required

                Family Name

                numRendered: 46
                Family Name:name is required

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 2`] = ` -" -
                numRendered: 62

                First Name

                numRendered: 64
                First Name:

                Family Name

                numRendered: 46
                Family Name:name is required

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 3`] = ` -" -
                numRendered: 82

                First Name

                numRendered: 84
                First Name:

                Family Name

                numRendered: 46
                Family Name:name is required

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 4`] = ` -" -
                numRendered: 102

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 46
                Family Name:name is required

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 5`] = ` -" -
                numRendered: 122

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 126
                Family Name:

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 6`] = ` -" -
                numRendered: 142

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 146
                Family Name:

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 7`] = ` -" -
                numRendered: 162

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 166
                Family Name:

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 8`] = ` -" -
                numRendered: 162

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 166
                Family Name:

                Gender

                numRendered: 38
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 9`] = ` -" -
                numRendered: 182

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 166
                Family Name:

                Gender

                numRendered: 188
                Gender:

                Teenager

                numRendered: 40
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 10`] = ` -" -
                numRendered: 202

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 166
                Family Name:

                Gender

                numRendered: 188
                Gender:

                Teenager

                numRendered: 210
                Teenager:
                - - -" -`; - -exports[`11_form should work with recorded events 11`] = ` -" -
                numRendered: 202

                First Name

                numRendered: 104
                First Name:

                Family Name

                numRendered: 166
                Family Name:

                Gender

                numRendered: 188
                Gender:

                Teenager

                numRendered: 210
                Teenager:
                - - -" -`; diff --git a/tests/e2e/__snapshots__/12_async.ts.snap b/tests/e2e/__snapshots__/12_async.ts.snap deleted file mode 100644 index d098a1a5..00000000 --- a/tests/e2e/__snapshots__/12_async.ts.snap +++ /dev/null @@ -1,41 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`12_async should work with recorded events 1`] = ` -" -

                Person

                User ID:
                connecting...

                Counter

                Count: 0
                - - -" -`; - -exports[`12_async should work with recorded events 2`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 0
                - - -" -`; - -exports[`12_async should work with recorded events 3`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 1
                - - -" -`; - -exports[`12_async should work with recorded events 4`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 1
                - - -" -`; - -exports[`12_async should work with recorded events 5`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 0
                - - -" -`; diff --git a/tests/e2e/__snapshots__/13_saga.ts.snap b/tests/e2e/__snapshots__/13_saga.ts.snap deleted file mode 100644 index d7b7a97a..00000000 --- a/tests/e2e/__snapshots__/13_saga.ts.snap +++ /dev/null @@ -1,41 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`13_saga should work with recorded events 1`] = ` -" -

                Person

                User ID:
                connecting...

                Counter

                Count: 0
                - - -" -`; - -exports[`13_saga should work with recorded events 2`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 0
                - - -" -`; - -exports[`13_saga should work with recorded events 3`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 1
                - - -" -`; - -exports[`13_saga should work with recorded events 4`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 1
                - - -" -`; - -exports[`13_saga should work with recorded events 5`] = ` -" -

                Person

                User ID:
                First Name: Emma

                Counter

                Count: 0
                - - -" -`; diff --git a/tests/e2e/__snapshots__/14_dynamic.ts.snap b/tests/e2e/__snapshots__/14_dynamic.ts.snap deleted file mode 100644 index acb0004b..00000000 --- a/tests/e2e/__snapshots__/14_dynamic.ts.snap +++ /dev/null @@ -1,97 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`14_dynamic should work with recorded events 1`] = ` -" -

                Counter

                numRendered: 18
                Count: 1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 2`] = ` -" -

                Counter

                numRendered: 18
                Count: 1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 3`] = ` -" -

                Counter

                numRendered: 22
                Count: 0
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 4`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 5`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 6`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 7`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 2
                First Name:
                Age:
                numRendered: 4
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 8`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 34
                First Name:
                Age:
                numRendered: 36
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 9`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 38
                Last Name:
                Age:
                numRendered: 36
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 10`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 38
                Last Name:
                Age:
                numRendered: 36
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 11`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 44
                Last Name:
                Age:
                numRendered: 36
                First Name:
                Age:
                - - -" -`; - -exports[`14_dynamic should work with recorded events 12`] = ` -" -

                Counter

                numRendered: 28
                Count: -1
                numRendered: 33
                Count: -1

                Person

                numRendered: 44
                Last Name:
                Age:
                numRendered: 49
                Last Name:
                Age:
                - - -" -`; diff --git a/tests/e2e/__snapshots__/15_reactmemoref.ts.snap b/tests/e2e/__snapshots__/15_reactmemoref.ts.snap deleted file mode 100644 index e3ae3f4e..00000000 --- a/tests/e2e/__snapshots__/15_reactmemoref.ts.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`15_reactmemoref should work with recorded events 1`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 2Study JS
                • numRendered: 3Buy ticket
                - - -" -`; - -exports[`15_reactmemoref should work with recorded events 2`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 5Study JS
                • numRendered: 3Buy ticket
                - - -" -`; - -exports[`15_reactmemoref should work with recorded events 3`] = ` -" -
                • numRendered: 4Wash dishes
                • numRendered: 5Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`15_reactmemoref should work with recorded events 4`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 5Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`15_reactmemoref should work with recorded events 5`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 8Study JS
                • numRendered: 6Buy ticket
                - - -" -`; - -exports[`15_reactmemoref should work with recorded events 6`] = ` -" -
                • numRendered: 7Wash dishes
                • numRendered: 8Study JS
                • numRendered: 9Buy ticket
                - - -" -`; diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..e31485ee --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,18 @@ +import { defineWorkspace } from 'vitest/config'; + +export default defineWorkspace([ + { + test: { + name: 'spec', + environment: 'happy-dom', + setupFiles: ['./tests/vitest-setup.js'], + }, + }, + { + test: { + name: 'e2e', + include: ['./tests/e2e/*.ts'], + testTimeout: 15 * 1000, + }, + }, +]); From 5fc1c4fd02f140a916fc0fa3d89a62e214e79c33 Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:13:44 +0900 Subject: [PATCH 21/25] e2e snapshots --- package.json | 2 +- tests/e2e/__snapshots__/01_counter.ts.snap | 129 ++++++++++ tests/e2e/__snapshots__/02_person.ts.snap | 145 +++++++++++ tests/e2e/__snapshots__/03_usestate.ts.snap | 121 ++++++++++ tests/e2e/__snapshots__/04_selector.ts.snap | 113 +++++++++ tests/e2e/__snapshots__/05_container.ts.snap | 161 +++++++++++++ tests/e2e/__snapshots__/06_customhook.ts.snap | 65 +++++ tests/e2e/__snapshots__/07_todolist.ts.snap | 225 ++++++++++++++++++ tests/e2e/__snapshots__/08_comparison.ts.snap | 89 +++++++ tests/e2e/__snapshots__/09_reactmemo.ts.snap | 49 ++++ tests/e2e/__snapshots__/10_untracked.ts.snap | 89 +++++++ tests/e2e/__snapshots__/11_form.ts.snap | 89 +++++++ tests/e2e/__snapshots__/12_async.ts.snap | 41 ++++ tests/e2e/__snapshots__/13_saga.ts.snap | 41 ++++ tests/e2e/__snapshots__/14_dynamic.ts.snap | 97 ++++++++ .../e2e/__snapshots__/15_reactmemoref.ts.snap | 49 ++++ 16 files changed, 1504 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/__snapshots__/01_counter.ts.snap create mode 100644 tests/e2e/__snapshots__/02_person.ts.snap create mode 100644 tests/e2e/__snapshots__/03_usestate.ts.snap create mode 100644 tests/e2e/__snapshots__/04_selector.ts.snap create mode 100644 tests/e2e/__snapshots__/05_container.ts.snap create mode 100644 tests/e2e/__snapshots__/06_customhook.ts.snap create mode 100644 tests/e2e/__snapshots__/07_todolist.ts.snap create mode 100644 tests/e2e/__snapshots__/08_comparison.ts.snap create mode 100644 tests/e2e/__snapshots__/09_reactmemo.ts.snap create mode 100644 tests/e2e/__snapshots__/10_untracked.ts.snap create mode 100644 tests/e2e/__snapshots__/11_form.ts.snap create mode 100644 tests/e2e/__snapshots__/12_async.ts.snap create mode 100644 tests/e2e/__snapshots__/13_saga.ts.snap create mode 100644 tests/e2e/__snapshots__/14_dynamic.ts.snap create mode 100644 tests/e2e/__snapshots__/15_reactmemoref.ts.snap diff --git a/package.json b/package.json index 6e792515..ddcb91ba 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "test:e2e": "run-s e2e:*", "e2e:01_counter": "server-test examples:01_counter http://localhost:8080 'vitest run --project=e2e 01_counter'", "e2e:02_person": "server-test examples:02_person http://localhost:8080 'vitest run --project=e2e 02_person'", - "e2e:03_setstate": "server-test examples:03_setstate http://localhost:8080 'vitest run --project=e2e 03_setstate'", + "e2e:03_usestate": "server-test examples:03_usestate http://localhost:8080 'vitest run --project=e2e 03_usestate'", "e2e:04_selector": "server-test examples:04_selector http://localhost:8080 'vitest run --project=e2e 04_selector'", "e2e:05_container": "server-test examples:05_container http://localhost:8080 'vitest run --project=e2e 05_container'", "e2e:06_customhook": "server-test examples:06_customhook http://localhost:8080 'vitest run --project=e2e 06_customhook'", diff --git a/tests/e2e/__snapshots__/01_counter.ts.snap b/tests/e2e/__snapshots__/01_counter.ts.snap new file mode 100644 index 00000000..ae585683 --- /dev/null +++ b/tests/e2e/__snapshots__/01_counter.ts.snap @@ -0,0 +1,129 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`01_minimal > should work with recorded events 1`] = ` +" +

                Counter

                numRendered: 26
                Count: 1
                numRendered: 28
                Count: 1

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 2`] = ` +" +

                Counter

                numRendered: 34
                Count: 2
                numRendered: 36
                Count: 2

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 3`] = ` +" +

                Counter

                numRendered: 42
                Count: 3
                numRendered: 44
                Count: 3

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 4`] = ` +" +

                Counter

                numRendered: 50
                Count: 2
                numRendered: 52
                Count: 2

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 5`] = ` +" +

                Counter

                numRendered: 58
                Count: 1
                numRendered: 60
                Count: 1

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 6`] = ` +" +

                Counter

                numRendered: 66
                Count: 0
                numRendered: 68
                Count: 0

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 7`] = ` +" +

                Counter

                numRendered: 74
                Count: -1
                numRendered: 76
                Count: -1

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 8`] = ` +" +

                Counter

                numRendered: 82
                Count: -2
                numRendered: 84
                Count: -2

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 9`] = ` +" +

                Counter

                numRendered: 90
                Count: -3
                numRendered: 92
                Count: -3

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 10`] = ` +" +

                Counter

                numRendered: 98
                Count: -2
                numRendered: 100
                Count: -2

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 11`] = ` +" +

                Counter

                numRendered: 106
                Count: -1
                numRendered: 108
                Count: -1

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 12`] = ` +" +

                Counter

                numRendered: 114
                Count: 0
                numRendered: 116
                Count: 0

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 13`] = ` +" +

                Counter

                numRendered: 114
                Count: 0
                numRendered: 116
                Count: 0

                TextBox

                numRendered: 6
                Text: hello
                numRendered: 8
                Text: hello
                + + +" +`; + +exports[`01_minimal > should work with recorded events 14`] = ` +" +

                Counter

                numRendered: 114
                Count: 0
                numRendered: 116
                Count: 0

                TextBox

                numRendered: 126
                Text: hello1
                numRendered: 128
                Text: hello1
                + + +" +`; + +exports[`01_minimal > should work with recorded events 15`] = ` +" +

                Counter

                numRendered: 114
                Count: 0
                numRendered: 116
                Count: 0

                TextBox

                numRendered: 134
                Text: hello12
                numRendered: 136
                Text: hello12
                + + +" +`; + +exports[`01_minimal > should work with recorded events 16`] = ` +" +

                Counter

                numRendered: 114
                Count: 0
                numRendered: 116
                Count: 0

                TextBox

                numRendered: 142
                Text: hello123
                numRendered: 144
                Text: hello123
                + + +" +`; diff --git a/tests/e2e/__snapshots__/02_person.ts.snap b/tests/e2e/__snapshots__/02_person.ts.snap new file mode 100644 index 00000000..e11f07a1 --- /dev/null +++ b/tests/e2e/__snapshots__/02_person.ts.snap @@ -0,0 +1,145 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`02_typescript > should work with recorded events 1`] = ` +" +

                Counter

                numRendered: 18
                Count: 1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                numRendered: 36
                Count: 1
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 40
                Count: 1
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 2`] = ` +" +

                Counter

                numRendered: 26
                Count: 2
                numRendered: 28
                Count: 2

                Person

                numRendered: 2
                numRendered: 52
                Count: 2
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 56
                Count: 2
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 3`] = ` +" +

                Counter

                numRendered: 34
                Count: 1
                numRendered: 36
                Count: 1

                Person

                numRendered: 2
                numRendered: 68
                Count: 1
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 72
                Count: 1
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 4`] = ` +" +

                Counter

                numRendered: 42
                Count: 0
                numRendered: 44
                Count: 0

                Person

                numRendered: 2
                numRendered: 84
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 88
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 5`] = ` +" +

                Counter

                numRendered: 50
                Count: 1
                numRendered: 52
                Count: 1

                Person

                numRendered: 2
                numRendered: 100
                Count: 1
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 104
                Count: 1
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 6`] = ` +" +

                Counter

                numRendered: 58
                Count: 2
                numRendered: 60
                Count: 2

                Person

                numRendered: 2
                numRendered: 116
                Count: 2
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 120
                Count: 2
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 7`] = ` +" +

                Counter

                numRendered: 66
                Count: 1
                numRendered: 68
                Count: 1

                Person

                numRendered: 2
                numRendered: 132
                Count: 1
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 136
                Count: 1
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 8`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 2
                numRendered: 148
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 152
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 9`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 2
                numRendered: 148
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 6
                numRendered: 152
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 10`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 162
                numRendered: 164a
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 166
                numRendered: 168a
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 11`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 178
                numRendered: 180ab
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 182
                numRendered: 184ab
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 12`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 194
                numRendered: 196abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 198
                numRendered: 200abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 13`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 210
                numRendered: 212abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 214
                numRendered: 216abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 14`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 226
                numRendered: 228abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 230
                numRendered: 232abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 15`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 242
                numRendered: 244abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 246
                numRendered: 248abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 16`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 258
                numRendered: 260abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 262
                numRendered: 264abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 17`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 274
                numRendered: 276abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 278
                numRendered: 280abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`02_typescript > should work with recorded events 18`] = ` +" +

                Counter

                numRendered: 74
                Count: 0
                numRendered: 76
                Count: 0

                Person

                numRendered: 290
                numRendered: 292abc
                Count: 0
                First Name:
                Last Name:
                Age:
                numRendered: 294
                numRendered: 296abc
                Count: 0
                First Name:
                Last Name:
                Age:
                + + +" +`; diff --git a/tests/e2e/__snapshots__/03_usestate.ts.snap b/tests/e2e/__snapshots__/03_usestate.ts.snap new file mode 100644 index 00000000..26fe44bb --- /dev/null +++ b/tests/e2e/__snapshots__/03_usestate.ts.snap @@ -0,0 +1,121 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`03_usestate > should work with recorded events 1`] = ` +" +

                Counter

                numRendered: 18
                Count: 1
                numRendered: 20
                Count: 1

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 2`] = ` +" +

                Counter

                numRendered: 26
                Count: 2
                numRendered: 28
                Count: 2

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 3`] = ` +" +

                Counter

                numRendered: 34
                Count: 3
                numRendered: 36
                Count: 3

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 4`] = ` +" +

                Counter

                numRendered: 42
                Count: 4
                numRendered: 44
                Count: 4

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 5`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 6`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 7`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 58
                First Name:
                Last Name:
                Age:
                numRendered: 60
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 8`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 66
                First Name:
                Last Name:
                Age:
                numRendered: 68
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 9`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 74
                First Name:
                Last Name:
                Age:
                numRendered: 76
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 10`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 82
                First Name:
                Last Name:
                Age:
                numRendered: 84
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 11`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 90
                First Name:
                Last Name:
                Age:
                numRendered: 92
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 12`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 98
                First Name:
                Last Name:
                Age:
                numRendered: 100
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 13`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 106
                First Name:
                Last Name:
                Age:
                numRendered: 108
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 14`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 114
                First Name:
                Last Name:
                Age:
                numRendered: 116
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`03_usestate > should work with recorded events 15`] = ` +" +

                Counter

                numRendered: 50
                Count: 5
                numRendered: 52
                Count: 5

                Person

                numRendered: 122
                First Name:
                Last Name:
                Age:
                numRendered: 124
                First Name:
                Last Name:
                Age:
                + + +" +`; diff --git a/tests/e2e/__snapshots__/04_selector.ts.snap b/tests/e2e/__snapshots__/04_selector.ts.snap new file mode 100644 index 00000000..e49ec5d9 --- /dev/null +++ b/tests/e2e/__snapshots__/04_selector.ts.snap @@ -0,0 +1,113 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`04_selector > should work with recorded events 1`] = ` +" +

                Counter

                numRendered: 14
                Count: 1
                numRendered: 16
                Count: 1

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 2`] = ` +" +

                Counter

                numRendered: 22
                Count: 0
                numRendered: 24
                Count: 0

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 3`] = ` +" +

                Counter

                numRendered: 30
                Count: 1
                numRendered: 32
                Count: 1

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 4`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 5`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 2
                First Name:
                Last Name:
                Age:
                numRendered: 4
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 6`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 46
                First Name:
                Last Name:
                Age:
                numRendered: 48
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 7`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 54
                First Name:
                Last Name:
                Age:
                numRendered: 56
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 8`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 62
                First Name:
                Last Name:
                Age:
                numRendered: 64
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 9`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 70
                First Name:
                Last Name:
                Age:
                numRendered: 72
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 10`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 78
                First Name:
                Last Name:
                Age:
                numRendered: 80
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 11`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 86
                First Name:
                Last Name:
                Age:
                numRendered: 88
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 12`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 94
                First Name:
                Last Name:
                Age:
                numRendered: 96
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 13`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 102
                First Name:
                Last Name:
                Age:
                numRendered: 104
                First Name:
                Last Name:
                Age:
                + + +" +`; + +exports[`04_selector > should work with recorded events 14`] = ` +" +

                Counter

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Person

                numRendered: 110
                First Name:
                Last Name:
                Age:
                numRendered: 112
                First Name:
                Last Name:
                Age:
                + + +" +`; diff --git a/tests/e2e/__snapshots__/05_container.ts.snap b/tests/e2e/__snapshots__/05_container.ts.snap new file mode 100644 index 00000000..0b378b78 --- /dev/null +++ b/tests/e2e/__snapshots__/05_container.ts.snap @@ -0,0 +1,161 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`05_container > should work with recorded events 1`] = ` +" +

                First container

                numRendered: 30
                Count: 1
                numRendered: 32
                Count: 1

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 2`] = ` +" +

                First container

                numRendered: 38
                Count: 0
                numRendered: 40
                Count: 0

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 3`] = ` +" +

                First container

                numRendered: 46
                Count: -1
                numRendered: 48
                Count: -1

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 4`] = ` +" +

                First container

                numRendered: 54
                Count: 0
                numRendered: 56
                Count: 0

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 5`] = ` +" +

                First container

                numRendered: 62
                Count: 1
                numRendered: 64
                Count: 1

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 6`] = ` +" +

                First container

                numRendered: 70
                Count: 2
                numRendered: 72
                Count: 2

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 7`] = ` +" +

                First container

                numRendered: 78
                Count: 1
                numRendered: 80
                Count: 1

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 8`] = ` +" +

                First container

                numRendered: 86
                Count: 0
                numRendered: 88
                Count: 0

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 9`] = ` +" +

                First container

                numRendered: 94
                Count: -1
                numRendered: 96
                Count: -1

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 10`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 6
                Count: 0
                numRendered: 8
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 11`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 110
                Count: 1
                numRendered: 112
                Count: 1
                + + +" +`; + +exports[`05_container > should work with recorded events 12`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 118
                Count: 0
                numRendered: 120
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 13`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 126
                Count: -1
                numRendered: 128
                Count: -1
                + + +" +`; + +exports[`05_container > should work with recorded events 14`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 134
                Count: 0
                numRendered: 136
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 15`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 142
                Count: 1
                numRendered: 144
                Count: 1
                + + +" +`; + +exports[`05_container > should work with recorded events 16`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 150
                Count: 2
                numRendered: 152
                Count: 2
                + + +" +`; + +exports[`05_container > should work with recorded events 17`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 158
                Count: 1
                numRendered: 160
                Count: 1
                + + +" +`; + +exports[`05_container > should work with recorded events 18`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 166
                Count: 0
                numRendered: 168
                Count: 0
                + + +" +`; + +exports[`05_container > should work with recorded events 19`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 174
                Count: -1
                numRendered: 176
                Count: -1
                + + +" +`; + +exports[`05_container > should work with recorded events 20`] = ` +" +

                First container

                numRendered: 102
                Count: -2
                numRendered: 104
                Count: -2

                Second container

                numRendered: 182
                Count: -2
                numRendered: 184
                Count: -2
                + + +" +`; diff --git a/tests/e2e/__snapshots__/06_customhook.ts.snap b/tests/e2e/__snapshots__/06_customhook.ts.snap new file mode 100644 index 00000000..cf2a213f --- /dev/null +++ b/tests/e2e/__snapshots__/06_customhook.ts.snap @@ -0,0 +1,65 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`06_customhook > should work with recorded events 1`] = ` +" +
                Count: 1
                Count: 1
                + + +" +`; + +exports[`06_customhook > should work with recorded events 2`] = ` +" +
                Count: 2
                Count: 2
                + + +" +`; + +exports[`06_customhook > should work with recorded events 3`] = ` +" +
                Count: 1
                Count: 1
                + + +" +`; + +exports[`06_customhook > should work with recorded events 4`] = ` +" +
                Count: 0
                Count: 0
                + + +" +`; + +exports[`06_customhook > should work with recorded events 5`] = ` +" +
                Count: 1
                Count: 1
                + + +" +`; + +exports[`06_customhook > should work with recorded events 6`] = ` +" +
                Count: 2
                Count: 2
                + + +" +`; + +exports[`06_customhook > should work with recorded events 7`] = ` +" +
                Count: 1
                Count: 1
                + + +" +`; + +exports[`06_customhook > should work with recorded events 8`] = ` +" +
                Count: 0
                Count: 0
                + + +" +`; diff --git a/tests/e2e/__snapshots__/07_todolist.ts.snap b/tests/e2e/__snapshots__/07_todolist.ts.snap new file mode 100644 index 00000000..2f3f81fa --- /dev/null +++ b/tests/e2e/__snapshots__/07_todolist.ts.snap @@ -0,0 +1,225 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`07_todolist > should work with recorded events 1`] = ` +" +
                  Show:
                  + + +" +`; + +exports[`07_todolist > should work with recorded events 2`] = ` +" +
                    Show:
                    + + +" +`; + +exports[`07_todolist > should work with recorded events 3`] = ` +" +
                      Show:
                      + + +" +`; + +exports[`07_todolist > should work with recorded events 4`] = ` +" +
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 5`] = ` +" +
                        • aaa
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 6`] = ` +" +
                        • aaa
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 7`] = ` +" +
                        • aaa
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 8`] = ` +" +
                        • aaa
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 9`] = ` +" +
                        • aaa
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 10`] = ` +" +
                        • aaa
                        • bbb
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 11`] = ` +" +
                        • aaa
                        • bbb
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 12`] = ` +" +
                        • aaa
                        • bbb
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 13`] = ` +" +
                        • aaa
                        • bbb
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 14`] = ` +" +
                        • aaa
                        • bbb
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 15`] = ` +" +
                        • aaa
                        • bbb
                        • ccc
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 16`] = ` +" +
                        • aaa
                        • bbb
                        • ccc
                        Show:
                        + + +" +`; + +exports[`07_todolist > should work with recorded events 17`] = ` +" +
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 18`] = ` +" +
                          • aaa
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 19`] = ` +" +
                          • aaa
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 20`] = ` +" +
                          • aaa
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 21`] = ` +" +
                          • bbb
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 22`] = ` +" +
                          • aaa
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 23`] = ` +" +
                          • aaa
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 24`] = ` +" +
                          • aaa
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 25`] = ` +" +
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 26`] = ` +" +
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 27`] = ` +" +
                          • aaa
                          • bbb
                          • ccc
                          Show:
                          + + +" +`; + +exports[`07_todolist > should work with recorded events 28`] = ` +" +
                          • aaa
                          • bbb
                          Show:
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/08_comparison.ts.snap b/tests/e2e/__snapshots__/08_comparison.ts.snap new file mode 100644 index 00000000..ccb3f1c4 --- /dev/null +++ b/tests/e2e/__snapshots__/08_comparison.ts.snap @@ -0,0 +1,89 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`08_comparison > should work with recorded events 1`] = ` +" +

                          Naive Context

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Split Context

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with React.memo

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 2`] = ` +" +

                          Naive Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Split Context

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with React.memo

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 3`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with React.memo

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 4`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:1)

                          Context with React.memo

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 5`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:1)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 6`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:1)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 7`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with useMemo

                          First Name:(renders:2)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 8`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with useMemo

                          First Name:(renders:4)
                          Family Name:(renders:2)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 9`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with useMemo

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          react-tracked

                          First Name:(renders:1)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 10`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with useMemo

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          react-tracked

                          First Name:(renders:3)
                          Family Name:(renders:1)
                          + + +" +`; + +exports[`08_comparison > should work with recorded events 11`] = ` +" +

                          Naive Context

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          Split Context

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with React.memo

                          First Name:(renders:3)
                          Family Name:(renders:3)

                          Context with useMemo

                          First Name:(renders:4)
                          Family Name:(renders:4)

                          react-tracked

                          First Name:(renders:3)
                          Family Name:(renders:3)
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/09_reactmemo.ts.snap b/tests/e2e/__snapshots__/09_reactmemo.ts.snap new file mode 100644 index 00000000..ceeb9bbd --- /dev/null +++ b/tests/e2e/__snapshots__/09_reactmemo.ts.snap @@ -0,0 +1,49 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`09_reactmemo > should work with recorded events 1`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 4Study JS
                          • numRendered: 6Buy ticket
                          + + +" +`; + +exports[`09_reactmemo > should work with recorded events 2`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 6Buy ticket
                          + + +" +`; + +exports[`09_reactmemo > should work with recorded events 3`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`09_reactmemo > should work with recorded events 4`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`09_reactmemo > should work with recorded events 5`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 16Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`09_reactmemo > should work with recorded events 6`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 16Study JS
                          • numRendered: 18Buy ticket
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/10_untracked.ts.snap b/tests/e2e/__snapshots__/10_untracked.ts.snap new file mode 100644 index 00000000..0e5073aa --- /dev/null +++ b/tests/e2e/__snapshots__/10_untracked.ts.snap @@ -0,0 +1,89 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`10_untracked > should work with recorded events 1`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 2`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 3`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 4`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 5`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 6`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 7`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 8`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 9`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 10`] = ` +" +
                          + + +" +`; + +exports[`10_untracked > should work with recorded events 11`] = ` +" +
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/11_form.ts.snap b/tests/e2e/__snapshots__/11_form.ts.snap new file mode 100644 index 00000000..aabe61b9 --- /dev/null +++ b/tests/e2e/__snapshots__/11_form.ts.snap @@ -0,0 +1,89 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`11_form > should work with recorded events 1`] = ` +" +
                          numRendered: 42

                          First Name

                          numRendered: 44
                          First Name:name is required

                          Family Name

                          numRendered: 46
                          Family Name:name is required

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 2`] = ` +" +
                          numRendered: 62

                          First Name

                          numRendered: 64
                          First Name:

                          Family Name

                          numRendered: 46
                          Family Name:name is required

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 3`] = ` +" +
                          numRendered: 82

                          First Name

                          numRendered: 84
                          First Name:

                          Family Name

                          numRendered: 46
                          Family Name:name is required

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 4`] = ` +" +
                          numRendered: 102

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 46
                          Family Name:name is required

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 5`] = ` +" +
                          numRendered: 122

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 126
                          Family Name:

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 6`] = ` +" +
                          numRendered: 142

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 146
                          Family Name:

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 7`] = ` +" +
                          numRendered: 162

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 166
                          Family Name:

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 8`] = ` +" +
                          numRendered: 162

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 166
                          Family Name:

                          Gender

                          numRendered: 38
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 9`] = ` +" +
                          numRendered: 182

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 166
                          Family Name:

                          Gender

                          numRendered: 188
                          Gender:

                          Teenager

                          numRendered: 40
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 10`] = ` +" +
                          numRendered: 202

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 166
                          Family Name:

                          Gender

                          numRendered: 188
                          Gender:

                          Teenager

                          numRendered: 210
                          Teenager:
                          + + +" +`; + +exports[`11_form > should work with recorded events 11`] = ` +" +
                          numRendered: 202

                          First Name

                          numRendered: 104
                          First Name:

                          Family Name

                          numRendered: 166
                          Family Name:

                          Gender

                          numRendered: 188
                          Gender:

                          Teenager

                          numRendered: 210
                          Teenager:
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/12_async.ts.snap b/tests/e2e/__snapshots__/12_async.ts.snap new file mode 100644 index 00000000..12b47e1a --- /dev/null +++ b/tests/e2e/__snapshots__/12_async.ts.snap @@ -0,0 +1,41 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`12_async > should work with recorded events 1`] = ` +" +

                          Person

                          User ID:
                          connecting...

                          Counter

                          Count: 0
                          + + +" +`; + +exports[`12_async > should work with recorded events 2`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 0
                          + + +" +`; + +exports[`12_async > should work with recorded events 3`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 1
                          + + +" +`; + +exports[`12_async > should work with recorded events 4`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 1
                          + + +" +`; + +exports[`12_async > should work with recorded events 5`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 0
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/13_saga.ts.snap b/tests/e2e/__snapshots__/13_saga.ts.snap new file mode 100644 index 00000000..50f62cc9 --- /dev/null +++ b/tests/e2e/__snapshots__/13_saga.ts.snap @@ -0,0 +1,41 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`13_saga > should work with recorded events 1`] = ` +" +

                          Person

                          User ID:
                          connecting...

                          Counter

                          Count: 0
                          + + +" +`; + +exports[`13_saga > should work with recorded events 2`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 0
                          + + +" +`; + +exports[`13_saga > should work with recorded events 3`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 1
                          + + +" +`; + +exports[`13_saga > should work with recorded events 4`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 1
                          + + +" +`; + +exports[`13_saga > should work with recorded events 5`] = ` +" +

                          Person

                          User ID:
                          First Name: Emma

                          Counter

                          Count: 0
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/14_dynamic.ts.snap b/tests/e2e/__snapshots__/14_dynamic.ts.snap new file mode 100644 index 00000000..8473ae3e --- /dev/null +++ b/tests/e2e/__snapshots__/14_dynamic.ts.snap @@ -0,0 +1,97 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`14_dynamic > should work with recorded events 1`] = ` +" +

                          Counter

                          numRendered: 18
                          Count: 1
                          numRendered: 20
                          Count: 1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 2`] = ` +" +

                          Counter

                          numRendered: 18
                          Count: 1
                          numRendered: 20
                          Count: 1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 3`] = ` +" +

                          Counter

                          numRendered: 22
                          Count: 0
                          numRendered: 20
                          Count: 1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 4`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 20
                          Count: 1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 5`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 20
                          Count: 1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 6`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 7`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 2
                          First Name:
                          Age:
                          numRendered: 4
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 8`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 34
                          First Name:
                          Age:
                          numRendered: 36
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 9`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 38
                          Last Name:
                          Age:
                          numRendered: 36
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 10`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 38
                          Last Name:
                          Age:
                          numRendered: 36
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 11`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 44
                          Last Name:
                          Age:
                          numRendered: 36
                          First Name:
                          Age:
                          + + +" +`; + +exports[`14_dynamic > should work with recorded events 12`] = ` +" +

                          Counter

                          numRendered: 28
                          Count: -1
                          numRendered: 33
                          Count: -1

                          Person

                          numRendered: 44
                          Last Name:
                          Age:
                          numRendered: 49
                          Last Name:
                          Age:
                          + + +" +`; diff --git a/tests/e2e/__snapshots__/15_reactmemoref.ts.snap b/tests/e2e/__snapshots__/15_reactmemoref.ts.snap new file mode 100644 index 00000000..698f9458 --- /dev/null +++ b/tests/e2e/__snapshots__/15_reactmemoref.ts.snap @@ -0,0 +1,49 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`15_reactmemoref > should work with recorded events 1`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 4Study JS
                          • numRendered: 6Buy ticket
                          + + +" +`; + +exports[`15_reactmemoref > should work with recorded events 2`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 6Buy ticket
                          + + +" +`; + +exports[`15_reactmemoref > should work with recorded events 3`] = ` +" +
                          • numRendered: 8Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`15_reactmemoref > should work with recorded events 4`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 10Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`15_reactmemoref > should work with recorded events 5`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 16Study JS
                          • numRendered: 12Buy ticket
                          + + +" +`; + +exports[`15_reactmemoref > should work with recorded events 6`] = ` +" +
                          • numRendered: 14Wash dishes
                          • numRendered: 16Study JS
                          • numRendered: 18Buy ticket
                          + + +" +`; From dafc224c96d7b80022c48c5031f7d39537639e49 Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:14:50 +0900 Subject: [PATCH 22/25] format --- examples/01_counter/src/app.tsx | 2 +- examples/07_todolist/src/components/FilterLink.tsx | 2 +- src/createContainer.ts | 10 ++-------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/examples/01_counter/src/app.tsx b/examples/01_counter/src/app.tsx index fd48f091..5d27c157 100644 --- a/examples/01_counter/src/app.tsx +++ b/examples/01_counter/src/app.tsx @@ -13,7 +13,7 @@ type State = typeof initialState; type Action = | { type: 'increment' } | { type: 'decrement' } - | { type: 'setText'; text: string } + | { type: 'setText'; text: string }; const reducer: Reducer = (state, action) => { switch (action.type) { diff --git a/examples/07_todolist/src/components/FilterLink.tsx b/examples/07_todolist/src/components/FilterLink.tsx index f45a51bb..7fecd2f0 100644 --- a/examples/07_todolist/src/components/FilterLink.tsx +++ b/examples/07_todolist/src/components/FilterLink.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from 'react'; import useVisibilityFilter from '../hooks/useVisibilityFilter'; -import type{ VisibilityFilterType } from '../state'; +import type { VisibilityFilterType } from '../state'; type Props = { filter: VisibilityFilterType; diff --git a/src/createContainer.ts b/src/createContainer.ts index adcbadb3..46982df6 100644 --- a/src/createContainer.ts +++ b/src/createContainer.ts @@ -5,20 +5,14 @@ import { useContext as useContextOrig, useDebugValue, } from 'react'; -import type { - ComponentType, - Context as ContextOrig, - ReactNode, -} from 'react'; +import type { ComponentType, Context as ContextOrig, ReactNode } from 'react'; import { createContext, useContextSelector, useContextUpdate, } from 'use-context-selector'; -import type { - Context, -} from 'use-context-selector'; +import type { Context } from 'use-context-selector'; import { createTrackedSelector } from './createTrackedSelector.js'; From ebbb88ad6a4327749e9f2adc1f18b4ebc475ef8f Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:21:01 +0900 Subject: [PATCH 23/25] fix vitest config --- vitest.workspace.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index e31485ee..f688851e 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,7 +1,9 @@ +import { resolve } from 'node:path'; import { defineWorkspace } from 'vitest/config'; export default defineWorkspace([ { + resolve: { alias: { 'react-tracked': resolve('src') } }, test: { name: 'spec', environment: 'happy-dom', From 36b536a32d056e13210502e642beaa5d9645aa44 Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:26:12 +0900 Subject: [PATCH 24/25] update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 706f8158..255e4fb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Changed + +- Module-first setup #209 + ### Added - breaking: make it compatible with memo and react compiler #202 From 4a82fe6db93c2b2fea5d20bde8991cb4d9ef0b2b Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Apr 2024 00:33:38 +0900 Subject: [PATCH 25/25] prepare-e2e hack --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ddcb91ba..61afe3d2 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,8 @@ "test:types": "tsc -p . --noEmit", "test:types:examples": "tsc -p examples --noEmit", "test:spec": "vitest run --project=spec", - "test:e2e": "run-s e2e:*", + "test:e2e": "run-s prepare-e2e e2e:*", + "prepare-e2e": "test -z $CI || node node_modules/puppeteer/install.mjs", "e2e:01_counter": "server-test examples:01_counter http://localhost:8080 'vitest run --project=e2e 01_counter'", "e2e:02_person": "server-test examples:02_person http://localhost:8080 'vitest run --project=e2e 02_person'", "e2e:03_usestate": "server-test examples:03_usestate http://localhost:8080 'vitest run --project=e2e 03_usestate'",