From 712bcee76c5fdc8cbbebf89af73d6ebfba73e895 Mon Sep 17 00:00:00 2001 From: Dmytro Demchenko <91938357+DimaDemchenko@users.noreply.github.com> Date: Fri, 1 Mar 2024 19:54:57 +0200 Subject: [PATCH] Fix: dev server & pnpm scripts improved (#342) * fix-dev-server&pnpm-clean-improved * clean scripts * Make pnpm calls consistent across projects * Fix json syntax * Refactor linter and type check configuration --------- Co-authored-by: Andriy Lysnevych --- .eslintrc.common.cjs | 3 +- demo/.eslintrc.cjs | 24 +- demo/package.json | 9 +- demo/public/modules-demo/demo.js | 8 +- demo/public/modules-demo/index.html | 2 +- demo/src/App.tsx | 138 ++-- demo/src/global.d.ts | 8 +- demo/tsconfig.node.json | 7 +- package.json | 19 +- packages/p2p-media-loader-core/.eslintrc.cjs | 2 +- packages/p2p-media-loader-core/package.json | 7 +- packages/p2p-media-loader-core/tsconfig.json | 6 +- .../p2p-media-loader-core/tsconfig.node.json | 7 + packages/p2p-media-loader-hlsjs/.eslintrc.cjs | 2 +- packages/p2p-media-loader-hlsjs/package.json | 7 +- packages/p2p-media-loader-hlsjs/tsconfig.json | 6 +- .../p2p-media-loader-hlsjs/tsconfig.node.json | 7 + packages/p2p-media-loader-shaka/.eslintrc.cjs | 2 +- packages/p2p-media-loader-shaka/package.json | 7 +- packages/p2p-media-loader-shaka/tsconfig.json | 6 +- .../p2p-media-loader-shaka/tsconfig.node.json | 7 + pnpm-lock.yaml | 723 +++++++++++++++++- .../tsconfig.base.json => tsconfig.base.json | 4 +- 23 files changed, 886 insertions(+), 125 deletions(-) create mode 100644 packages/p2p-media-loader-core/tsconfig.node.json create mode 100644 packages/p2p-media-loader-hlsjs/tsconfig.node.json create mode 100644 packages/p2p-media-loader-shaka/tsconfig.node.json rename packages/tsconfig.base.json => tsconfig.base.json (94%) diff --git a/.eslintrc.common.cjs b/.eslintrc.common.cjs index b6a11a84..3c067d66 100644 --- a/.eslintrc.common.cjs +++ b/.eslintrc.common.cjs @@ -8,12 +8,13 @@ module.exports = { "plugin:@typescript-eslint/recommended-type-checked", ], plugins: ["@typescript-eslint"], - ignorePatterns: ["/.eslintrc.cjs", "/lib", "/dist", "/vite.config.ts"], + ignorePatterns: ["/.eslintrc.cjs", "/lib", "/dist"], rules: { "no-console": "warn", "@typescript-eslint/prefer-nullish-coalescing": "error", curly: ["warn", "multi-line", "consistent"], "spaced-comment": ["warn", "always", { markers: ["/"] }], "no-debugger": "warn", + "@typescript-eslint/no-non-null-assertion": "error", }, }; diff --git a/demo/.eslintrc.cjs b/demo/.eslintrc.cjs index 5d141cba..216c940b 100644 --- a/demo/.eslintrc.cjs +++ b/demo/.eslintrc.cjs @@ -1,18 +1,26 @@ module.exports = { env: { es2020: true }, - extends: ["../.eslintrc.common.cjs", "plugin:react-hooks/recommended"], parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: "latest", sourceType: "module", - project: "tsconfig.json", + ecmaFeatures: { + jsx: true, + }, + project: ["tsconfig.json", "tsconfig.node.json"], tsconfigRootDir: __dirname, }, - plugins: ["react-refresh"], - rules: { - "react-refresh/only-export-components": "warn", - "@typescript-eslint/ban-ts-comment": 0, - "react-hooks/exhaustive-deps": 0, - "@typescript-eslint/no-explicit-any": 0, + plugins: ["react", "react-hooks", "react-refresh"], + extends: [ + "../.eslintrc.common.cjs", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", + ], + ignorePatterns: ["public/*"], + settings: { + react: { + version: "detect", + }, }, }; diff --git a/demo/package.json b/demo/package.json index e6212dea..ecae92f1 100644 --- a/demo/package.json +++ b/demo/package.json @@ -6,17 +6,19 @@ "scripts": { "dev": "vite", "build": "vite build", - "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", "prettier": "prettier --write .", - "type-check": "npx tsc --noEmit" + "type-check": "npx tsc --noEmit", + "clean": "rimraf dist", + "clean-with-modules": "rimraf node_modules && pnpm clean" }, "dependencies": { "dplayer": "^1.27.1", "mux.js": "^6.3.0", + "p2p-media-loader-core": "workspace:*", "p2p-media-loader-hlsjs": "workspace:*", "p2p-media-loader-shaka": "workspace:*", - "p2p-media-loader-core": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, @@ -25,6 +27,7 @@ "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@vitejs/plugin-react": "^4.2.1", + "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", "hls.js": "^1.5.1", diff --git a/demo/public/modules-demo/demo.js b/demo/public/modules-demo/demo.js index 2dda5098..2b302bd1 100644 --- a/demo/public/modules-demo/demo.js +++ b/demo/public/modules-demo/demo.js @@ -1,18 +1,18 @@ import { Engine as ShakaEngine } from "p2p-media-loader-shaka"; -import { Engine as HlsEngine } from "p2p-media-loader-hls"; +import { Engine as HlsEngine } from "p2p-media-loader-hlsjs"; const manifestUri = "https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8"; -function initApp() { +async function initApp() { if (shaka.Player.isBrowserSupported()) { initHlsPlayer(); - initShakaPlayer(); + await initShakaPlayer(); } else { console.error("Browser not supported!"); } } -async function initHlsPlayer() { +function initHlsPlayer() { const engine = new HlsEngine(); const player = new Hls({ ...engine.getConfig() }); diff --git a/demo/public/modules-demo/index.html b/demo/public/modules-demo/index.html index 55b9cdbe..fc791e24 100644 --- a/demo/public/modules-demo/index.html +++ b/demo/public/modules-demo/index.html @@ -6,7 +6,7 @@ "imports": { "p2p-media-loader-core": "./core/p2p-media-loader-core.es.js", "p2p-media-loader-shaka": "./shaka/p2p-media-loader-shaka.es.js", - "p2p-media-loader-hls": "./hlsjs/p2p-media-loader-hlsjs.es.js" + "p2p-media-loader-hlsjs": "./hlsjs/p2p-media-loader-hlsjs.es.js" } } diff --git a/demo/src/App.tsx b/demo/src/App.tsx index b2fa28ef..3e91db96 100644 --- a/demo/src/App.tsx +++ b/demo/src/App.tsx @@ -73,14 +73,14 @@ function App() { const [httpLoadedGlob, setHttpLoadedGlob] = useLocalStorageItem( "httpLoaded", 0, - (v) => v.toString(), - (v) => (v !== null ? +v : 0), + numberToStorageItem, + storageItemToNumber, ); const [p2pLoadedGlob, setP2PLoadedGlob] = useLocalStorageItem( "p2pLoaded", 0, - (v) => v.toString(), - (v) => (v !== null ? +v : 0), + numberToStorageItem, + storageItemToNumber, ); const hlsEngine = useRef(); @@ -108,6 +108,36 @@ function App() { shakaEngine.current.addEventListener("onSegmentLoaded", onSegmentLoaded); } + const createNewPlayer = useCallback(() => { + setHttpLoadedGlob(0); + setP2PLoadedGlob(0); + + window.videoPlayer?.destroy?.(); + hlsInstance.current?.destroy(); + void shakaInstance.current?.destroy(); + + switch (playerType) { + case "hls-dplayer": + initHlsDPlayer(streamUrl); + break; + case "hlsjs": + initHlsJsPlayer(streamUrl); + break; + case "hls-clappr": + initHlsClapprPlayer(streamUrl); + break; + case "shaka-dplayer": + initShakaDPlayer(streamUrl); + break; + case "shaka-player": + initShakaPlayer(streamUrl); + break; + case "shaka-clappr": + initShakaClapprPlayer(streamUrl); + break; + } + }, [playerType, setHttpLoadedGlob, setP2PLoadedGlob, streamUrl]); + useEffect(() => { if (!window.Hls.isSupported() || window.videoPlayer) { return; @@ -121,7 +151,7 @@ function App() { setStreamUrl(streamUrls.hlsLive2); } createNewPlayer(); - }, [playerType]); + }, [createNewPlayer]); const initHlsJsPlayer = (url: string) => { if (!videoRef.current || !hlsEngine.current) return; @@ -200,13 +230,11 @@ function App() { const shakaPlayer = new window.shaka.Player(); shakaPlayer.attach(video); - const onError = (error: { code: number }) => { - console.error("Error code", error.toString(), "object", error); + const onError = (error: unknown) => { + console.error("Shaka error", error); }; - shakaPlayer.addEventListener("error", (event: { code: number }) => { - onError(event); - }); + shakaPlayer.addEventListener("error", onError); engine.configureAndInitShakaPlayer(shakaPlayer); shakaPlayer.load(url).catch(onError); @@ -282,36 +310,6 @@ function App() { setStreamUrl(streamUrl); }; - const createNewPlayer = () => { - setHttpLoadedGlob(0); - setP2PLoadedGlob(0); - - window.videoPlayer?.destroy?.(); - hlsInstance.current?.destroy(); - void shakaInstance.current?.destroy(); - - switch (playerType) { - case "hls-dplayer": - initHlsDPlayer(streamUrl); - break; - case "hlsjs": - initHlsJsPlayer(streamUrl); - break; - case "hls-clappr": - initHlsClapprPlayer(streamUrl); - break; - case "shaka-dplayer": - initShakaDPlayer(streamUrl); - break; - case "shaka-player": - initShakaPlayer(streamUrl); - break; - case "shaka-clappr": - initShakaClapprPlayer(streamUrl); - break; - } - }; - const loadStreamWithExistingInstance = () => { switch (playerType) { case "hls-dplayer": @@ -434,16 +432,8 @@ function LoggersSelect() { const [activeLoggers, setActiveLoggers] = useLocalStorageItem( "debug", [], - (list) => { - setTimeout(() => debug.enable(localStorage.debug as string), 0); - if (list.length === 0) return null; - return list.join(","); - }, - (storageItem) => { - setTimeout(() => debug.enable(localStorage.debug as string), 0); - if (!storageItem) return []; - return storageItem.split(","); - }, + loggersToStorageItem, + storageItemToLoggers, ); const onChange = (event: React.ChangeEvent) => { @@ -494,20 +484,23 @@ function useLocalStorageItem( const [value, setValue] = useState( storageItemToValue(localStorage[prop] as string | null) ?? initValue, ); - const setValueExternal = useCallback((value: T | ((prev: T) => T)) => { - setValue(value); - if (typeof value === "function") { - const prev = storageItemToValue(localStorage.getItem(prop)); - const next = (value as (prev: T) => T)(prev); - const result = valueToStorageItem(next); - if (result !== null) localStorage.setItem(prop, result); - else localStorage.removeItem(prop); - } else { - const result = valueToStorageItem(value); - if (result !== null) localStorage.setItem(prop, result); - else localStorage.removeItem(prop); - } - }, []); + const setValueExternal = useCallback( + (value: T | ((prev: T) => T)) => { + setValue(value); + if (typeof value === "function") { + const prev = storageItemToValue(localStorage.getItem(prop)); + const next = (value as (prev: T) => T)(prev); + const result = valueToStorageItem(next); + if (result !== null) localStorage.setItem(prop, result); + else localStorage.removeItem(prop); + } else { + const result = valueToStorageItem(value); + if (result !== null) localStorage.setItem(prop, result); + else localStorage.removeItem(prop); + } + }, + [prop, storageItemToValue, valueToStorageItem], + ); useEffect(() => { const eventHandler = (event: StorageEvent) => { @@ -519,7 +512,7 @@ function useLocalStorageItem( return () => { window.removeEventListener("storage", eventHandler); }; - }, []); + }, [prop, storageItemToValue]); return [value, setValueExternal]; } @@ -534,3 +527,18 @@ const loggers = [ "core:request-secondary", "core:segment-memory-storage", ] as const; + +const numberToStorageItem = (v: number) => v.toString(); +const storageItemToNumber = (v: string | null) => (v !== null ? +v : 0); + +const loggersToStorageItem = (list: string[]) => { + setTimeout(() => debug.enable(localStorage.debug as string), 0); + if (list.length === 0) return null; + return list.join(","); +}; + +const storageItemToLoggers = (storageItem: string | null) => { + setTimeout(() => debug.enable(localStorage.debug as string), 0); + if (!storageItem) return []; + return storageItem.split(","); +}; diff --git a/demo/src/global.d.ts b/demo/src/global.d.ts index 695c7746..38c829d6 100644 --- a/demo/src/global.d.ts +++ b/demo/src/global.d.ts @@ -1,11 +1,9 @@ declare global { interface Window { + // eslint-disable-next-line @typescript-eslint/no-explicit-any Clappr: any; - LevelSelector: any; - DashShakaPlayback: any; - shaka: any; - muxjs: any; - Hls: any; + LevelSelector: unknown; + DashShakaPlayback: unknown; } } diff --git a/demo/tsconfig.node.json b/demo/tsconfig.node.json index 3adda81a..075c6939 100644 --- a/demo/tsconfig.node.json +++ b/demo/tsconfig.node.json @@ -1,10 +1,7 @@ { + "extends": "../tsconfig.base.json", "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "Bundler", - "allowSyntheticDefaultImports": true + "moduleResolution": "NodeNext" }, "include": ["vite.config.ts"] } diff --git a/package.json b/package.json index 4c610ca7..1e287aa3 100644 --- a/package.json +++ b/package.json @@ -3,16 +3,17 @@ "version": "1.0.0", "private": true, "scripts": { - "build": "pnpm --recursive run build", - "build:es": "pnpm --filter './packages/**' run build:es", - "build:umd": "pnpm --filter './packages/**' run build:umd", - "build:umd-min": "pnpm --filter './packages/**' run build:umd-min", - "clean": "pnpm --filter './packages/**' run clean", + "build": "pnpm --recursive build", + "build:es": "pnpm --filter './packages/**' build:es", + "build:esm": "pnpm --filter './packages/**' build:esm", + "build:esm-min": "pnpm --filter './packages/**' build:esm-min", + "clean": "pnpm --recursive clean", + "clean-with-modules": "pnpm --recursive clean-with-modules", "pack-packages": "pnpm --filter './packages/**' exec -- pnpm pack", - "lint": "pnpm --recursive run lint", - "prettier": "pnpm --recursive run prettier", - "type-check": "pnpm --recursive run type-check", - "dev": "pnpm --filter './demo' run dev" + "lint": "pnpm --recursive lint", + "prettier": "pnpm --recursive prettier", + "type-check": "pnpm --recursive type-check", + "dev": "pnpm --filter './demo' dev" }, "devDependencies": { "@types/debug": "^4.1.12", diff --git a/packages/p2p-media-loader-core/.eslintrc.cjs b/packages/p2p-media-loader-core/.eslintrc.cjs index 89be9c85..c7062f7a 100644 --- a/packages/p2p-media-loader-core/.eslintrc.cjs +++ b/packages/p2p-media-loader-core/.eslintrc.cjs @@ -4,7 +4,7 @@ module.exports = { parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, - project: "tsconfig.json", + project: ["tsconfig.json", "tsconfig.node.json"], ecmaVersion: "latest", sourceType: "module", }, diff --git a/packages/p2p-media-loader-core/package.json b/packages/p2p-media-loader-core/package.json index 4e9e69d6..be4f062e 100644 --- a/packages/p2p-media-loader-core/package.json +++ b/packages/p2p-media-loader-core/package.json @@ -16,14 +16,15 @@ "type": "module", "scripts": { "dev": "vite", - "build": "pnpm run build:es && pnpm run build:esm && pnpm run build:esm-min", + "build": "pnpm build:es && pnpm build:esm && pnpm build:esm-min", "build:esm": "vite build --mode esm", "build:esm-min": "vite build --mode esm-min", "build:es": "tsc", "preview": "vite preview", "prettier": "prettier --write .", - "lint": "eslint . --ext .ts", - "clean": "rimraf lib dist build", + "lint": "eslint . --ext .ts --report-unused-disable-directives --max-warnings 0", + "clean": "rimraf lib dist build p2p-media-loader-core-*.tgz", + "clean-with-modules": "rimraf node_modules && pnpm clean", "type-check": "npx tsc --noEmit" }, "dependencies": { diff --git a/packages/p2p-media-loader-core/tsconfig.json b/packages/p2p-media-loader-core/tsconfig.json index 11bf8e07..b99a8aed 100644 --- a/packages/p2p-media-loader-core/tsconfig.json +++ b/packages/p2p-media-loader-core/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "../tsconfig.base.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "resolveJsonModule": true, "outDir": "lib", "rootDir": "src", - "tsBuildInfoFile": "./build/.tsbuildinfo", + "tsBuildInfoFile": "./build/.tsbuildinfo" }, "include": ["src/**/*"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/packages/p2p-media-loader-core/tsconfig.node.json b/packages/p2p-media-loader-core/tsconfig.node.json new file mode 100644 index 00000000..8e500fa1 --- /dev/null +++ b/packages/p2p-media-loader-core/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "moduleResolution": "NodeNext" + }, + "include": ["vite.config.ts"] +} diff --git a/packages/p2p-media-loader-hlsjs/.eslintrc.cjs b/packages/p2p-media-loader-hlsjs/.eslintrc.cjs index 89be9c85..c7062f7a 100644 --- a/packages/p2p-media-loader-hlsjs/.eslintrc.cjs +++ b/packages/p2p-media-loader-hlsjs/.eslintrc.cjs @@ -4,7 +4,7 @@ module.exports = { parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, - project: "tsconfig.json", + project: ["tsconfig.json", "tsconfig.node.json"], ecmaVersion: "latest", sourceType: "module", }, diff --git a/packages/p2p-media-loader-hlsjs/package.json b/packages/p2p-media-loader-hlsjs/package.json index 7c039fd7..d6769e05 100644 --- a/packages/p2p-media-loader-hlsjs/package.json +++ b/packages/p2p-media-loader-hlsjs/package.json @@ -17,14 +17,15 @@ "type": "module", "scripts": { "dev": "vite", - "build": "pnpm run build:es && pnpm run build:esm && pnpm run build:esm-min", + "build": "pnpm build:es && pnpm build:esm && pnpm build:esm-min", "build:esm": "vite build --mode esm", "build:esm-min": "vite build --mode esm-min", "build:es": "tsc", "preview": "vite preview", "prettier": "prettier --write .", - "lint": "eslint . --ext .ts", - "clean": "rimraf lib dist build", + "lint": "eslint . --ext .ts --report-unused-disable-directives --max-warnings 0", + "clean": "rimraf lib dist build p2p-media-loader-hlsjs-*.tgz", + "clean-with-modules": "rimraf node_modules && pnpm clean", "type-check": "npx tsc --noEmit" }, "dependencies": { diff --git a/packages/p2p-media-loader-hlsjs/tsconfig.json b/packages/p2p-media-loader-hlsjs/tsconfig.json index 11bf8e07..b99a8aed 100644 --- a/packages/p2p-media-loader-hlsjs/tsconfig.json +++ b/packages/p2p-media-loader-hlsjs/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "../tsconfig.base.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "resolveJsonModule": true, "outDir": "lib", "rootDir": "src", - "tsBuildInfoFile": "./build/.tsbuildinfo", + "tsBuildInfoFile": "./build/.tsbuildinfo" }, "include": ["src/**/*"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/packages/p2p-media-loader-hlsjs/tsconfig.node.json b/packages/p2p-media-loader-hlsjs/tsconfig.node.json new file mode 100644 index 00000000..8e500fa1 --- /dev/null +++ b/packages/p2p-media-loader-hlsjs/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "moduleResolution": "NodeNext" + }, + "include": ["vite.config.ts"] +} diff --git a/packages/p2p-media-loader-shaka/.eslintrc.cjs b/packages/p2p-media-loader-shaka/.eslintrc.cjs index 89be9c85..c7062f7a 100644 --- a/packages/p2p-media-loader-shaka/.eslintrc.cjs +++ b/packages/p2p-media-loader-shaka/.eslintrc.cjs @@ -4,7 +4,7 @@ module.exports = { parser: "@typescript-eslint/parser", parserOptions: { tsconfigRootDir: __dirname, - project: "tsconfig.json", + project: ["tsconfig.json", "tsconfig.node.json"], ecmaVersion: "latest", sourceType: "module", }, diff --git a/packages/p2p-media-loader-shaka/package.json b/packages/p2p-media-loader-shaka/package.json index 96f5bbbd..5d1b2c5b 100644 --- a/packages/p2p-media-loader-shaka/package.json +++ b/packages/p2p-media-loader-shaka/package.json @@ -17,14 +17,15 @@ "type": "module", "scripts": { "dev": "vite", - "build": "pnpm run build:es && pnpm run build:esm && pnpm run build:esm-min", + "build": "pnpm build:es && pnpm build:esm && pnpm build:esm-min", "build:esm": "vite build --mode esm", "build:esm-min": "vite build --mode esm-min", "build:es": "tsc", "preview": "vite preview", "prettier": "prettier --write .", - "lint": "eslint . --ext .ts", - "clean": "rimraf lib dist build", + "lint": "eslint . --ext .ts --report-unused-disable-directives --max-warnings 0", + "clean": "rimraf lib dist build p2p-media-loader-shaka-*.tgz", + "clean-with-modules": "rimraf node_modules && pnpm clean", "type-check": "npx tsc --noEmit" }, "dependencies": { diff --git a/packages/p2p-media-loader-shaka/tsconfig.json b/packages/p2p-media-loader-shaka/tsconfig.json index 11bf8e07..b99a8aed 100644 --- a/packages/p2p-media-loader-shaka/tsconfig.json +++ b/packages/p2p-media-loader-shaka/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "../tsconfig.base.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "resolveJsonModule": true, "outDir": "lib", "rootDir": "src", - "tsBuildInfoFile": "./build/.tsbuildinfo", + "tsBuildInfoFile": "./build/.tsbuildinfo" }, "include": ["src/**/*"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/packages/p2p-media-loader-shaka/tsconfig.node.json b/packages/p2p-media-loader-shaka/tsconfig.node.json new file mode 100644 index 00000000..8e500fa1 --- /dev/null +++ b/packages/p2p-media-loader-shaka/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "moduleResolution": "NodeNext" + }, + "include": ["vite.config.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 450bd1dd..a113ef4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,9 @@ importers: '@vitejs/plugin-react': specifier: ^4.2.1 version: 4.2.1(vite@5.1.4) + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.33.2(eslint@8.57.0) eslint-plugin-react-hooks: specifier: ^4.6.0 version: 4.6.0(eslint@8.57.0) @@ -1141,11 +1144,74 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 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-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.5 + get-intrinsic: 1.2.2 + 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.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + 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.5 + 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.5 + 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 + /asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} dependencies: @@ -1165,6 +1231,12 @@ packages: util: 0.12.5 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: false @@ -1174,6 +1246,13 @@ packages: engines: {node: '>= 0.4'} 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 + /axios@1.2.3: resolution: {integrity: sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==} dependencies: @@ -1382,6 +1461,17 @@ packages: set-function-length: 1.1.1 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 + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1574,6 +1664,15 @@ packages: has-property-descriptors: 1.0.1 dev: true + /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-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -1610,6 +1709,13 @@ packages: path-type: 4.0.0 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'} @@ -1672,6 +1778,110 @@ packages: resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} 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-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-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.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.0 + 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.0 + 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 + /esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} @@ -1735,6 +1945,31 @@ packages: 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@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1981,6 +2216,20 @@ packages: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true + /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 + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -1999,6 +2248,26 @@ packages: hasown: 2.0.0 dev: true + /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.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /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 + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2055,6 +2324,13 @@ packages: 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 + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -2077,6 +2353,10 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 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'} @@ -2093,11 +2373,22 @@ packages: get-intrinsic: 1.2.2 dev: true + /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.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} 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'} @@ -2110,6 +2401,13 @@ packages: has-symbols: 1.0.3 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 + /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -2133,6 +2431,13 @@ packages: function-bind: 1.1.2 dev: true + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hls.js@1.5.1: resolution: {integrity: sha512-SsUSlpyjOGnwBhVrVEG6vRFPU2SAJ0gUqrFdGeo7YPbOC0vuWK0TDMyp7n3QiaBC/Wkic771uqPnnVdT8/x+3Q==} @@ -2180,6 +2485,15 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /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.0 + side-channel: 1.0.4 + dev: true + /ip@1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: false @@ -2201,6 +2515,35 @@ packages: has-tostringtag: 1.0.0 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-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + 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.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -2212,11 +2555,24 @@ packages: hasown: 2.0.0 dev: true + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + 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@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -2236,6 +2592,10 @@ packages: is-extglob: 2.1.1 dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + /is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -2244,6 +2604,18 @@ packages: define-properties: 1.2.1 dev: true + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2254,6 +2626,39 @@ packages: engines: {node: '>=8'} 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.0 + 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-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + 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.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} @@ -2261,6 +2666,34 @@ packages: which-typed-array: 1.1.13 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-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 + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -2270,6 +2703,16 @@ packages: engines: {node: '>=10'} 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'} @@ -2313,6 +2756,16 @@ packages: hasBin: true 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: @@ -2343,7 +2796,6 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 - dev: false /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} @@ -2537,6 +2989,11 @@ packages: vm-browserify: 1.1.2 dev: true + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -2564,6 +3021,40 @@ packages: object-keys: 1.1.1 dev: true + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -2683,6 +3174,11 @@ packages: find-up: 5.0.0 dev: true + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss@8.4.35: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} @@ -2711,6 +3207,14 @@ packages: resolution: {integrity: sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==} dev: false + /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 + dev: true + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false @@ -2781,6 +3285,10 @@ packages: scheduler: 0.23.0 dev: false + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} @@ -2802,10 +3310,33 @@ packages: util-deprecate: 1.0.2 dev: true + /reflect.getprototypeof@1.0.5: + resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + 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 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: false + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2820,6 +3351,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2879,10 +3419,29 @@ packages: resolution: {integrity: sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==} dev: false + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -2916,6 +3475,28 @@ packages: has-property-descriptors: 1.0.1 dev: true + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true @@ -3024,6 +3605,45 @@ packages: strip-ansi: 7.1.0 dev: true + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + /string2compact@2.0.1: resolution: {integrity: sha512-Bm/T8lHMTRXw+u83LE+OW7fXmC/wM+Mbccfdo533ajSBNxddDHlRrvxE49NdciGHgXkUQM5WYskJ7uTkbBUI0A==} engines: {node: '>=12.20.0'} @@ -3124,6 +3744,50 @@ packages: engines: {node: '>=10'} dev: true + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.5: + resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + /typescript-eslint@7.1.0(eslint@8.57.0)(typescript@5.3.3): resolution: {integrity: sha512-GfAALH4zoqae5mIfHr7WU3BsULHP73hjwF8vCmyTkH3IXHXjqg3JNWwUcd8CwOTLIr4tjRTZQWpToyESPnpOhg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3154,6 +3818,15 @@ packages: base64-arraybuffer: 1.0.2 dev: false + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + /unordered-array-remove@1.0.2: resolution: {integrity: sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==} dev: false @@ -3260,6 +3933,43 @@ packages: engines: {node: '>= 8'} dev: false + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + 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.13 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} @@ -3271,6 +3981,17 @@ packages: has-tostringtag: 1.0.0 dev: true + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/packages/tsconfig.base.json b/tsconfig.base.json similarity index 94% rename from packages/tsconfig.base.json rename to tsconfig.base.json index cc86eadc..2eadb9e7 100644 --- a/packages/tsconfig.base.json +++ b/tsconfig.base.json @@ -7,7 +7,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "allowImportingTsExtensions": false, - "resolveJsonModule": false, + "resolveJsonModule": true, "isolatedModules": true, "noEmit": false, "declaration": true, @@ -22,5 +22,5 @@ "noFallthroughCasesInSwitch": true, "composite": true, "allowSyntheticDefaultImports": true - }, + } }