diff --git a/.eslintrc.js b/.eslintrc.js index 23bdbc22..b11993b3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,21 +1,81 @@ module.exports = { env: { browser: true, - es2021: true + es2021: true, + node: true, }, + plugins: ['@typescript-eslint', 'simple-import-sort', 'unused-imports'], extends: [ - 'plugin:react/recommended', - 'standard-with-typescript' - ], - overrides: [ - ], - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module' - }, - plugins: [ - 'react' + 'eslint:recommended', + 'next', + 'next/core-web-vitals', + 'plugin:@typescript-eslint/recommended', + 'prettier', ], rules: { - } -} + 'no-unused-vars': 'off', // Disabling base rule as it's handled by @typescript-eslint/no-unused-vars + 'no-console': 'warn', // Allow console with warning to identify usage + '@typescript-eslint/explicit-module-boundary-types': 'off', // Disabling requirement for explicit return types on functions + 'react/no-unescaped-entities': 'off', // Disable warnings for unescaped entities in JSX + 'react/display-name': 'off', // Disable display name rule for React components + 'react/jsx-curly-brace-presence': [ + 'warn', + { props: 'never', children: 'never' }, + ], // Enforce no unnecessary curly braces in JSX + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-types': 'off', + 'no-empty': 'off', + 'no-fallthrough': 'off', + 'react/jsx-key': 'warn', + 'react/no-children-prop': 'off', + 'no-prototype-builtins': 'warn', + 'no-case-declarations': 'warn', + 'react-hooks/exhaustive-deps': 'off', + + // Disable rule for unused vars but enable warning for unused imports and vars with specific patterns + '@typescript-eslint/no-unused-vars': 'off', + 'unused-imports/no-unused-imports': 'warn', + 'unused-imports/no-unused-vars': [ + 'warn', + { + vars: 'all', + varsIgnorePattern: '^_', // Ignore vars with _ prefix + args: 'after-used', + argsIgnorePattern: '^_', // Ignore args with _ prefix + }, + ], + + // Configuring import sorting + 'simple-import-sort/exports': 'warn', + 'simple-import-sort/imports': [ + 'warn', + { + groups: [ + ['^@?\\w', '^\\u0000'], + ['^.+\\.s?css$'], + ['^@/lib', '^@/hooks'], + ['^@/data'], + ['^@/components', '^@/container'], + ['^@/store'], + ['^@/'], + [ + '^\\./?$', + '^\\.(?!/?$)', + '^\\.\\./?$', + '^\\.\\.(?!/?$)', + '^\\.\\./\\.\\./?$', + '^\\.\\./\\.\\.(?!/?$)', + '^\\.\\./\\.\\./\\.\\./?$', + '^\\.\\./\\.\\./\\.\\.(?!/?$)', + ], + ['^@/types'], + ['^'], + ], + }, + ], + }, + globals: { + React: 'writable', // Updated to 'writable' to reflect correct usage + JSX: true, + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index ddb2c248..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:react/recommended", - "plugin:prettier/recommended", - "plugin:prettier/react", - "plugin:prettier/@typescript-eslint" - ], - "plugins": [ - "@typescript-eslint", - "react", - "prettier" - ], - "rules": { - "react/react-in-jsx-scope": "off" - }, - "globals": { - "React": "writable" - } -} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c6b91ec..6fa8bbdc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,11 +11,13 @@ jobs: name: test/node ${{ matrix.node }}/${{ matrix.platform }} runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} + cache: 'npm' - run: npm install + - run: npm run lint - run: npm run test - run: npm run build @@ -24,11 +26,12 @@ jobs: name: coverage runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: - node-version: '17' - - run: npm install + node-version: '18' + cache: 'npm' + - run: npm ci - run: npm run build - uses: paambaati/codeclimate-action@v3.2.0 env: diff --git a/.prettierrc b/.prettierrc index 1196752f..f5a575dc 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,8 @@ { - "semi": true, - "singleQuote": true -} \ No newline at end of file + "trailingComma": "es5", + "semi": true, + "tabWidth": 2, + "singleQuote": true, + "jsxSingleQuote": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/jest.config.js b/jest.config.js index d4baced8..2e9a0dd4 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,5 +1,3 @@ -// jest.config.js - module.exports = { collectCoverageFrom: [ '**/*.{js,jsx,ts,tsx}', @@ -9,28 +7,27 @@ module.exports = { '!*.config.{js,ts}', ], moduleNameMapper: { - /* Handle CSS imports (with CSS modules) - https://jestjs.io/docs/webpack#mocking-css-modules */ '^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', - - // Handle CSS imports (without CSS modules) '^.+\\.(css|sass|scss)$': '/__mocks__/styleMock.js', - - /* Handle image imports - https://jestjs.io/docs/webpack#handling-static-assets */ '^.+\\.(jpg|jpeg|png|gif|webp|avif|svg)$': '/__mocks__/fileMock.js', }, testPathIgnorePatterns: ['/node_modules/', '/.next/'], testEnvironment: 'jsdom', transform: { - /* Use babel-jest to transpile tests with the next/babel preset - https://jestjs.io/docs/configuration#transform-objectstring-pathtotransformer--pathtotransformer-object */ '^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { presets: ['next/babel'] }], }, transformIgnorePatterns: [ '/node_modules/', '^.+\\.module\\.(css|sass|scss)$', ], - setupFilesAfterEnv: ['/jest.setup.js'] -} + setupFilesAfterEnv: ['/jest.setup.js'], + coverageThreshold: { + global: { + branches: 10, + functions: 10, + lines: 10, + statements: 10, + }, + }, +}; diff --git a/jest.setup.js b/jest.setup.js index a5dd1979..32fa2e5f 100644 --- a/jest.setup.js +++ b/jest.setup.js @@ -1,3 +1,3 @@ // jest.setup.js -import '@testing-library/jest-dom/extend-expect' +import '@testing-library/jest-dom/extend-expect'; diff --git a/next.config.js b/next.config.js index 999eb343..d90f7de3 100644 --- a/next.config.js +++ b/next.config.js @@ -1,16 +1,12 @@ /** @type {import('next').NextConfig} */ - const nextConfig = { reactStrictMode: false, swcMinify: true, trailingSlash: true, images: { - unoptimized: true + unoptimized: true, }, -} - -module.exports = nextConfig - - +}; +module.exports = nextConfig; diff --git a/package-lock.json b/package-lock.json index 4c8d3d22..167e2a77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,15 +24,12 @@ "@types/node": "18.11.9", "@types/react": "18.0.25", "@types/react-dom": "18.0.8", - "@typescript-eslint/eslint-plugin": "^5.48.1", - "@typescript-eslint/parser": "^5.48.1", "3d-force-graph-vr": "^2.2.2", "aframe": "^1.4.2", "axios": "^1.2.2", "clsx": "^1.2.1", "d3-force": "^3.0.0", "date-fns": "^2.30.0", - "eslint": "8.27.0", "eslint-config-next": "13.0.2", "eslint-config-prettier": "^8.6.0", "eslint-plugin-prettier": "^4.2.1", @@ -43,10 +40,9 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "moment-timezone": "^0.5.38", - "next": "13.0.2", + "next": "^13.5.6", "next-router-mock": "^0.9.9", "papaparse": "^5.4.1", - "prettier": "^2.8.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-force-graph": "^1.43.0", @@ -70,20 +66,35 @@ "@types/lodash": "^4.14.202", "@types/papaparse": "^5.3.8", "@types/testing-library__user-event": "^4.2.0", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", "autoprefixer": "^10.4.13", "babel-jest": "^29.5.0", + "eslint": "^8.56.0", + "eslint-plugin-simple-import-sort": "^12.0.0", + "eslint-plugin-unused-imports": "^3.1.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "postcss": "^8.4.18", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.11", "react-test-renderer": "^18.2.0", "tailwindcss": "^3.2.2" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@adobe/css-tools": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", - "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", "dev": true }, "node_modules/@amplitude/analytics-browser": { @@ -184,11 +195,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -232,11 +244,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.21.4", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -277,31 +289,31 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -356,28 +368,28 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -404,12 +416,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -417,9 +429,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -615,32 +627,32 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "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.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -648,12 +660,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -832,14 +844,36 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -855,9 +889,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -868,6 +902,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@floating-ui/core": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", @@ -984,12 +1026,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -1009,9 +1051,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -2267,9 +2309,9 @@ } }, "node_modules/@next/env": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.2.tgz", - "integrity": "sha512-Qb6WPuRriGIQ19qd6NBxpcrFOfj8ziN7l9eZUfwff5gl4zLXluqtuZPddYZM/oWjN53ZYcuRXzL+oowKyJeYtA==" + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" }, "node_modules/@next/eslint-plugin-next": { "version": "13.0.2", @@ -2279,40 +2321,10 @@ "glob": "7.1.7" } }, - "node_modules/@next/swc-android-arm-eabi": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.2.tgz", - "integrity": "sha512-X54UQCTFyOGnJP//Z71dPPlp4BCYcQL2ncikKXQcPzVpqPs4C3m+tKC8ivBNH6edAXkppwsLRz1/yQwgSZ9Swg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-android-arm64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.0.2.tgz", - "integrity": "sha512-1P00Kv8uKaLubqo7JzPrTqgFAzSOmfb8iwqJrOb9in5IvTRtNGlkR4hU0sXzqbQNM/+SaYxze6Z5ry1IDyb/cQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.0.2.tgz", - "integrity": "sha512-1zGIOkInkOLRv0QQGZ+3wffYsyKI4vIy62LYTvDWUn7TAYqnmXwougp9NSLqDeagLwgsv2URrykyAFixA/YqxA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", + "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", "cpu": [ "arm64" ], @@ -2325,9 +2337,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.0.2.tgz", - "integrity": "sha512-ECDAjoMP1Y90cARaelS6X+k6BQx+MikAYJ8f/eaJrLur44NIOYc9HA/dgcTp5jenguY4yT8V+HCquLjAVle6fA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", + "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", "cpu": [ "x64" ], @@ -2339,40 +2351,10 @@ "node": ">= 10" } }, - "node_modules/@next/swc-freebsd-x64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.0.2.tgz", - "integrity": "sha512-2DcL/ofQdBnQX3IoI9sjlIAyLCD1oZoUBuhrhWbejvBQjutWrI0JTEv9uG69WcxWhVMm3BCsjv8GK2/68OKp7A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.0.2.tgz", - "integrity": "sha512-Y3OQF1CSBSWW2vGkmvOIuOUNqOq8qX7f1ZpcKUVWP3/Uq++DZmVi9d18lgnSe1I3QFqc+nXWyun9ljsN83j0sw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.0.2.tgz", - "integrity": "sha512-mNyzwsFF6kwZYEjnGicx9ksDZYEZvyzEc1BtCu8vdZi/v8UeixQwCiAT6FyYX9uxMPEkzk8qiU0t0u9gvltsKw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", + "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", "cpu": [ "arm64" ], @@ -2385,9 +2367,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.0.2.tgz", - "integrity": "sha512-M6SdYjWgRrY3tJBxz0663zCRPTu5BRONmxlftKWWHv9LjAJ59neTLaGj4rp0A08DkJglZIoCkLOzLrzST6TGag==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", + "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", "cpu": [ "arm64" ], @@ -2400,9 +2382,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.0.2.tgz", - "integrity": "sha512-pi63RoxvG4ES1KS06Zpm0MATVIXTs/TIbLbdckeLoM40u1d3mQl/+hSSrLRSxzc2OtyL8fh92sM4gkJrQXAMAw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", + "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", "cpu": [ "x64" ], @@ -2415,9 +2397,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.0.2.tgz", - "integrity": "sha512-9Pv91gfYnDONgjtRm78n64b/c54+azeHtlnqBLTnIFWSMBDRl1/WDkhKWIj3fBGPLimtK7Tko3ULR3og9RRUPw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", + "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", "cpu": [ "x64" ], @@ -2430,9 +2412,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.0.2.tgz", - "integrity": "sha512-Nvewe6YZaizAkGHHprbMkYqQulBjZCHKBGKeFPwoPtOA+a2Qi4pZzc/qXFyC5/2A6Z0mr2U1zg9rd04WBYMwBw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", + "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", "cpu": [ "arm64" ], @@ -2445,9 +2427,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.0.2.tgz", - "integrity": "sha512-ZUBYGZw5G3QrqDpRq1EWi3aHmvPZM8ijK5TFL6UbH16cYQ0JpANmuG2P66KB93Qe/lWWzbeAZk/tj1XqwoCuPA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", + "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", "cpu": [ "ia32" ], @@ -2460,9 +2442,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.0.2.tgz", - "integrity": "sha512-fA9uW1dm7C0mEYGcKlbmLcVm2sKcye+1kPxh2cM4jVR+kQQMtHWsjIzeSpe2grQLSDan06z4n6hbr8b1c3hA8w==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", + "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", "cpu": [ "x64" ], @@ -2534,6 +2516,14 @@ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", @@ -2553,13 +2543,24 @@ } }, "node_modules/@swc/helpers": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", - "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", "dependencies": { "tslib": "^2.4.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@testing-library/dom": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.0.tgz", @@ -2917,9 +2918,10 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", @@ -2994,9 +2996,10 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "dev": true }, "node_modules/@types/stack-utils": { "version": "2.0.1", @@ -3045,31 +3048,33 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", - "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/type-utils": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -3077,10 +3082,63 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3089,9 +3147,10 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -3105,27 +3164,30 @@ "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", - "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", + "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -3134,53 +3196,29 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", - "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0" + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", - "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.52.0", - "@typescript-eslint/utils": "5.52.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", - "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3188,20 +3226,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz", - "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3213,10 +3253,20 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3224,65 +3274,26 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz", - "integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -3293,21 +3304,23 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz", - "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.52.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "7.0.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3319,6 +3332,11 @@ "resolved": "https://registry.npmjs.org/@ungap/custom-elements/-/custom-elements-1.3.0.tgz", "integrity": "sha512-f4q/s76+8nOy+fhrNHyetuoPDR01lmlZB5czfCG+OOnBw/Wf+x48DcCDPmMQY7oL8xYFL8qfenMoiS8DUkKBUw==" }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "node_modules/3d-force-graph": { "version": "1.71.5", "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.71.5.tgz", @@ -3347,13 +3365,13 @@ } }, "node_modules/3d-force-graph-vr": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/3d-force-graph-vr/-/3d-force-graph-vr-2.2.2.tgz", - "integrity": "sha512-LSI24ugjT7SUE8JCusV5pmFHaFZ51EgGH1B7KMOK4JEgmUvogFwkJcXg7Go2mHI28WXDzFyBvrckWiwv5yLUeA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/3d-force-graph-vr/-/3d-force-graph-vr-2.2.5.tgz", + "integrity": "sha512-Lq31Ido+QQE0iWZNmyKVcsY2rmyMJaBzRgqG/4zZUY2nOBOmf/8TQF7kHSsW564UaZtx4FvjamHyVSkenPy9BA==", "dependencies": { "accessor-fn": "1", - "aframe": "^1.4", - "aframe-extras": "^6.1", + "aframe": "^1.5", + "aframe-extras": "^7.2", "aframe-forcegraph-component": "3", "kapsule": "1", "polished": "4" @@ -3377,9 +3395,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -3447,9 +3465,9 @@ } }, "node_modules/aframe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.4.2.tgz", - "integrity": "sha512-/sWCOB3ZNe5dWvMknIIMi5dwfU3rIyCiV+QkfYTDK36rNGivmUrmcdkregLmZk0OGHu9WAXoeUP3n0a23n6D0A==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.5.0.tgz", + "integrity": "sha512-QvxxF2jbQbSDnPouPveSm93OxfFUu5V6UmQoLbbf207BR/o4bM3trpMDCoGiYE2oQCe0d/VG56OyFmYDwYDfBg==", "dependencies": { "@ungap/custom-elements": "^1.1.0", "buffer": "^6.0.3", @@ -3461,8 +3479,8 @@ "present": "0.0.6", "promise-polyfill": "^3.1.0", "super-animejs": "^3.1.0", - "super-three": "^0.147.1", - "three-bmfont-text": "github:dmarcos/three-bmfont-text#21d017046216e318362c48abd1a48bddfb6e0733", + "super-three": "0.158.0", + "three-bmfont-text": "github:dmarcos/three-bmfont-text#eed4878795be9b3e38cf6aec6b903f56acd1f695", "webvr-polyfill": "^0.10.12" }, "engines": { @@ -3471,14 +3489,13 @@ } }, "node_modules/aframe-extras": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/aframe-extras/-/aframe-extras-6.1.1.tgz", - "integrity": "sha512-w3o3sKfQG+cwe1ZoKUxvMLehh0D/MlvFZeg2XuyIto+Nrs/kGLPcb/fsI5DXM4jociZ3wVQfqcA1BVF+0Nq45A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/aframe-extras/-/aframe-extras-7.2.0.tgz", + "integrity": "sha512-1LGWi55qgJiBP531m+MJomBAdRAVyNkCLAjtZH1TC+dkJxD0VbV6gZevc/30j3+053Wgptn5ZHSl0IdBafVPyA==", "dependencies": { - "three-pathfinding": "^0.7.0" - }, - "peerDependencies": { - "aframe": "*" + "nipplejs": "^0.10.1", + "three": "0.159.0", + "three-pathfinding": "^1.1.0" } }, "node_modules/aframe-forcegraph-component": { @@ -3753,11 +3770,11 @@ } }, "node_modules/axios": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", - "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -4080,10 +4097,55 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } }, "node_modules/call-bind": { "version": "1.0.2", @@ -4268,6 +4330,17 @@ "node": ">=12" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -4717,14 +4790,6 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -4794,6 +4859,11 @@ "node": ">=0.10.0" } }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "node_modules/define-properties": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", @@ -4944,6 +5014,11 @@ "node": ">= 0.8.0" } }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, "node_modules/electron-to-chromium": { "version": "1.4.299", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.299.tgz", @@ -4966,6 +5041,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5191,48 +5274,47 @@ } }, "node_modules/eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", - "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", - "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -5270,6 +5352,132 @@ } } }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-next/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-next/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/eslint-config-prettier": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", @@ -5523,57 +5731,69 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz", + "integrity": "sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.1.0.tgz", + "integrity": "sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==", + "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "eslint-rule-composer": "^0.3.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "6 - 7", + "eslint": "8" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, "engines": { - "node": ">=4.0" + "node": ">=4.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -5621,18 +5841,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/eslint/node_modules/globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", @@ -5667,13 +5875,13 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5696,9 +5904,9 @@ } }, "node_modules/esquery": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.1.tgz", - "integrity": "sha512-3ZggxvMv5EEY1ssUVyHSVt0oPreyBfbUi1XikJVfjFiBeBDLdrb0IWoDiEwqT/2sUQi0TGaWtFhOGDD8RTpXgQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dependencies": { "estraverse": "^5.1.0" }, @@ -5903,18 +6111,10 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, - "node_modules/flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "dependencies": { - "dtype": "^2.0.0" - } - }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", @@ -6157,6 +6357,11 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -6218,16 +6423,47 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/harmony-reflect": { "version": "1.6.2", @@ -6354,6 +6590,11 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -6441,17 +6682,6 @@ "node": ">= 4" } }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "optional": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -8421,9 +8651,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8793,15 +9023,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8908,6 +9129,11 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -8962,6 +9188,14 @@ "node": ">=12" } }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -9084,6 +9318,14 @@ "loose-envify": "cli.js" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9280,9 +9522,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9295,61 +9543,49 @@ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" - }, "node_modules/new-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==" }, "node_modules/next": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/next/-/next-13.0.2.tgz", - "integrity": "sha512-uQ5z5e4D9mOe8+upy6bQdYYjo/kk1v3jMW87kTy2TgAyAsEO+CkwRnMgyZ4JoHEnhPZLHwh7dk0XymRNLe1gFw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz", + "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==", "dependencies": { - "@next/env": "13.0.2", - "@swc/helpers": "0.4.11", + "@next/env": "13.5.6", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", - "styled-jsx": "5.1.0", - "use-sync-external-store": "1.2.0" + "postcss": "8.4.31", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=14.6.0" + "node": ">=16.14.0" }, "optionalDependencies": { - "@next/swc-android-arm-eabi": "13.0.2", - "@next/swc-android-arm64": "13.0.2", - "@next/swc-darwin-arm64": "13.0.2", - "@next/swc-darwin-x64": "13.0.2", - "@next/swc-freebsd-x64": "13.0.2", - "@next/swc-linux-arm-gnueabihf": "13.0.2", - "@next/swc-linux-arm64-gnu": "13.0.2", - "@next/swc-linux-arm64-musl": "13.0.2", - "@next/swc-linux-x64-gnu": "13.0.2", - "@next/swc-linux-x64-musl": "13.0.2", - "@next/swc-win32-arm64-msvc": "13.0.2", - "@next/swc-win32-ia32-msvc": "13.0.2", - "@next/swc-win32-x64-msvc": "13.0.2" + "@next/swc-darwin-arm64": "13.5.6", + "@next/swc-darwin-x64": "13.5.6", + "@next/swc-linux-arm64-gnu": "13.5.6", + "@next/swc-linux-arm64-musl": "13.5.6", + "@next/swc-linux-x64-gnu": "13.5.6", + "@next/swc-linux-x64-musl": "13.5.6", + "@next/swc-win32-arm64-msvc": "13.5.6", + "@next/swc-win32-ia32-msvc": "13.5.6", + "@next/swc-win32-x64-msvc": "13.5.6" }, "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", + "@opentelemetry/api": "^1.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { + "@opentelemetry/api": { "optional": true }, "sass": { @@ -9366,29 +9602,6 @@ "react": ">=17.0.0" } }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/ngraph.events": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.2.2.tgz", @@ -9423,19 +9636,24 @@ "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" }, "node_modules/nice-color-palettes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-1.0.1.tgz", - "integrity": "sha512-aHEFYKuGiaga8LqMi0Ttarqzn4tKS7BaIE2MeD9SDjv6yVc7DMIu/Eax4RvUgwR7vS0hXAUEIUx9P0/54O1W0g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", + "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", "dependencies": { + "got": "^9.2.2", "map-limit": "0.0.1", "minimist": "^1.2.0", - "new-array": "^1.0.0", - "xhr-request": "^1.0.1" + "new-array": "^1.0.0" }, "bin": { "nice-color-palettes": "bin/index.js" } }, + "node_modules/nipplejs": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/nipplejs/-/nipplejs-0.10.1.tgz", + "integrity": "sha512-BuKBDfdd7BVK6E7sivHwrRPh9TETsHuHEwuT95nAjRz2uJu5roYngNs+BdRe8nYf8mP6OZ9aRqdgMlqVsDMRcw==" + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -9465,6 +9683,14 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, "node_modules/nosleep.js": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.7.0.tgz", @@ -9634,21 +9860,29 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9713,12 +9947,12 @@ "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" }, "node_modules/parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", "dependencies": { "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" + "xml2js": "^0.5.0" } }, "node_modules/parse-headers": { @@ -9907,10 +10141,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -9919,10 +10152,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -10041,20 +10278,28 @@ "node": ">= 0.8.0" } }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, "node_modules/present": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/present/-/present-0.0.6.tgz", "integrity": "sha512-8HGGcsH0xefDkhtWzXhigzieKtervWPQgyX8RtQD3cKr4wU307j8XANVSaZLxbR0+1EBonCJNOdUrQ7hbk3Kiw==" }, "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -10071,6 +10316,75 @@ "node": ">=6.0.0" } }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.11.tgz", + "integrity": "sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + }, + "prettier-plugin-twig-melody": { + "optional": true + } + } + }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -10155,6 +10469,15 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -10189,19 +10512,6 @@ "is-buffer": "^1.0.2" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -10268,9 +10578,9 @@ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "node_modules/react-force-graph": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/react-force-graph/-/react-force-graph-1.43.0.tgz", - "integrity": "sha512-g59ZWGrR6hkokY8RMO6FQHbltaIZ3+AGf9mrQs+s1+J26Sc2Wc6aro4cLW8PTHMIHgX/zml44yp60gRbzdFSMw==", + "version": "1.44.3", + "resolved": "https://registry.npmjs.org/react-force-graph/-/react-force-graph-1.44.3.tgz", + "integrity": "sha512-vDeL6f8bYmV9OKxivIHzPsyNDU604lUB315lA2dgznfaoeg7W/0HfdbgnvYIk+Usd3/m6fIi0zUeOHw8eTTo8g==", "dependencies": { "3d-force-graph": "1", "3d-force-graph-ar": "1", @@ -10536,17 +10846,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10616,6 +10915,14 @@ "node": ">=10" } }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10681,9 +10988,9 @@ "dev": true }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/saxes": { "version": "6.0.0", @@ -10706,9 +11013,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -10756,35 +11063,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -10877,12 +11155,12 @@ "node": ">= 0.4" } }, - "node_modules/strict-uri-encode": { + "node_modules/streamsearch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" } }, "node_modules/string-length": { @@ -11014,9 +11292,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.0.tgz", - "integrity": "sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", "dependencies": { "client-only": "0.0.1" }, @@ -11046,9 +11324,9 @@ "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==" }, "node_modules/super-three": { - "version": "0.147.1", - "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.147.1.tgz", - "integrity": "sha512-H8yhlXqjscWpqYLhPQ/h3EfElNBxe3Ktp1tGVp13vBjIxF5sMVkAo2NpIDXkY8+MVhuTrA0ZN42IMNPdOKwKLg==" + "version": "0.158.0", + "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.158.0.tgz", + "integrity": "sha512-dSqCbRHoQZD5ayz3WaOrUD2zuDfJhGyLIbGvhypUuICvb10cHLpNkxrrWOwA16SUOEPlE5z/rxTupjs41nzzhw==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -11145,32 +11423,20 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/three": { - "version": "0.155.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.155.0.tgz", - "integrity": "sha512-sNgCYmDijnIqkD/bMfk+1pHg3YzsxW7V2ChpuP6HCQ8NiZr3RufsXQr8M3SSUMjW4hG+sUk7YbyuY0DncaDTJQ==" + "version": "0.159.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.159.0.tgz", + "integrity": "sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA==" }, "node_modules/three-bmfont-text": { - "version": "2.4.0", - "resolved": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#21d017046216e318362c48abd1a48bddfb6e0733", - "integrity": "sha512-lIMa1n+QKNU1f/LZgtS1oUGpoop3MuVXrUr5ybZOUR3+Jk//zjqScnQpHml6MWyvZzL8A5/1Hd8Tsqd3M1kudA==", + "version": "3.0.0", + "resolved": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#eed4878795be9b3e38cf6aec6b903f56acd1f695", + "integrity": "sha512-FDlyR8SyHQ0Ek38qBx5Hg/AwPuBI/1w/QWpMgzw19Vn81xsDNFTOXJpU0HcvI78C72wwXjJ3T7+EX7k2geDV4Q==", "license": "MIT", "dependencies": { "array-shuffle": "^1.0.1", - "inherits": "^2.0.1", "layout-bmfont-text": "^1.2.0", - "nice-color-palettes": "^1.0.1", - "object-assign": "^4.0.1", - "quad-indices": "^2.0.1", - "three-buffer-vertex-data": "dmarcos/three-buffer-vertex-data#69378fc58daf27d3b1d930df9f233473e4a4818c" - } - }, - "node_modules/three-buffer-vertex-data": { - "version": "1.1.0", - "resolved": "git+ssh://git@github.com/dmarcos/three-buffer-vertex-data.git#69378fc58daf27d3b1d930df9f233473e4a4818c", - "integrity": "sha512-ZPCCbGfueRzd2/YwH136UnVN+N11Mvxu7uPaEzIdtuk0m5HPs1LGXOM5hOkpxamjvqSC6MDJ3nd11grGi7sMKw==", - "license": "MIT", - "dependencies": { - "flatten-vertex-data": "^1.0.0" + "nice-color-palettes": "^3.0.0", + "quad-indices": "^2.0.1" } }, "node_modules/three-forcegraph": { @@ -11197,9 +11463,12 @@ } }, "node_modules/three-pathfinding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/three-pathfinding/-/three-pathfinding-0.7.0.tgz", - "integrity": "sha512-UwWvzgio1UFe81n5jKHNzB4B+AG3wfZ54OKp7bTb1MHuC3cy6RTtr0dbbiPQQoqxzr+DRArR2DUwQSEknw5+nw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/three-pathfinding/-/three-pathfinding-1.2.0.tgz", + "integrity": "sha512-TlIfy+mLOdP7OhQG4Mn1dNONYbhu2Xe+AD7jL8SbdKdAHxH/TF68svpk2c8UrSfR/3YWQ87Tq/lp5HQO/QuaMw==", + "peerDependencies": { + "three": "0.x.x" + } }, "node_modules/three-render-objects": { "version": "1.28.6", @@ -11218,14 +11487,6 @@ "three": "*" } }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/timezone-soft": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/timezone-soft/-/timezone-soft-1.4.1.tgz", @@ -11255,6 +11516,14 @@ "node": ">=4" } }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11267,9 +11536,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "dependencies": { "psl": "^1.1.33", @@ -11281,6 +11550,18 @@ "node": ">=6" } }, + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -11449,10 +11730,16 @@ "requires-port": "^1.0.0" } }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } }, "node_modules/use-isomorphic-layout-effect": { "version": "1.1.2", @@ -11516,6 +11803,18 @@ "makeerror": "1.0.12" } }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/webvr-polyfill": { "version": "0.10.12", "resolved": "https://registry.npmjs.org/webvr-polyfill/-/webvr-polyfill-0.10.12.tgz", @@ -11613,9 +11912,10 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11725,20 +12025,6 @@ "xtend": "^4.0.0" } }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -11754,9 +12040,9 @@ "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -11872,10 +12158,15 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==" + }, "@adobe/css-tools": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", - "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", "dev": true }, "@amplitude/analytics-browser": { @@ -11960,11 +12251,12 @@ } }, "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { @@ -11995,11 +12287,11 @@ } }, "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "requires": { - "@babel/types": "^7.21.4", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -12030,25 +12322,25 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { @@ -12088,22 +12380,22 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.21.0", @@ -12121,19 +12413,19 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==" }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -12269,39 +12561,39 @@ } }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" } }, "@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "requires": { + "@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.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -12439,14 +12731,27 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==" + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -12456,15 +12761,20 @@ }, "dependencies": { "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "requires": { "type-fest": "^0.20.2" } } } }, + "@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==" + }, "@floating-ui/core": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", @@ -12549,12 +12859,12 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -12564,9 +12874,9 @@ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -13374,9 +13684,9 @@ } }, "@next/env": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.2.tgz", - "integrity": "sha512-Qb6WPuRriGIQ19qd6NBxpcrFOfj8ziN7l9eZUfwff5gl4zLXluqtuZPddYZM/oWjN53ZYcuRXzL+oowKyJeYtA==" + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" }, "@next/eslint-plugin-next": { "version": "13.0.2", @@ -13386,82 +13696,58 @@ "glob": "7.1.7" } }, - "@next/swc-android-arm-eabi": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.2.tgz", - "integrity": "sha512-X54UQCTFyOGnJP//Z71dPPlp4BCYcQL2ncikKXQcPzVpqPs4C3m+tKC8ivBNH6edAXkppwsLRz1/yQwgSZ9Swg==", - "optional": true - }, - "@next/swc-android-arm64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.0.2.tgz", - "integrity": "sha512-1P00Kv8uKaLubqo7JzPrTqgFAzSOmfb8iwqJrOb9in5IvTRtNGlkR4hU0sXzqbQNM/+SaYxze6Z5ry1IDyb/cQ==", - "optional": true - }, "@next/swc-darwin-arm64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.0.2.tgz", - "integrity": "sha512-1zGIOkInkOLRv0QQGZ+3wffYsyKI4vIy62LYTvDWUn7TAYqnmXwougp9NSLqDeagLwgsv2URrykyAFixA/YqxA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", + "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", "optional": true }, "@next/swc-darwin-x64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.0.2.tgz", - "integrity": "sha512-ECDAjoMP1Y90cARaelS6X+k6BQx+MikAYJ8f/eaJrLur44NIOYc9HA/dgcTp5jenguY4yT8V+HCquLjAVle6fA==", - "optional": true - }, - "@next/swc-freebsd-x64": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.0.2.tgz", - "integrity": "sha512-2DcL/ofQdBnQX3IoI9sjlIAyLCD1oZoUBuhrhWbejvBQjutWrI0JTEv9uG69WcxWhVMm3BCsjv8GK2/68OKp7A==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.0.2.tgz", - "integrity": "sha512-Y3OQF1CSBSWW2vGkmvOIuOUNqOq8qX7f1ZpcKUVWP3/Uq++DZmVi9d18lgnSe1I3QFqc+nXWyun9ljsN83j0sw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", + "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.0.2.tgz", - "integrity": "sha512-mNyzwsFF6kwZYEjnGicx9ksDZYEZvyzEc1BtCu8vdZi/v8UeixQwCiAT6FyYX9uxMPEkzk8qiU0t0u9gvltsKw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", + "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.0.2.tgz", - "integrity": "sha512-M6SdYjWgRrY3tJBxz0663zCRPTu5BRONmxlftKWWHv9LjAJ59neTLaGj4rp0A08DkJglZIoCkLOzLrzST6TGag==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", + "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.0.2.tgz", - "integrity": "sha512-pi63RoxvG4ES1KS06Zpm0MATVIXTs/TIbLbdckeLoM40u1d3mQl/+hSSrLRSxzc2OtyL8fh92sM4gkJrQXAMAw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", + "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.0.2.tgz", - "integrity": "sha512-9Pv91gfYnDONgjtRm78n64b/c54+azeHtlnqBLTnIFWSMBDRl1/WDkhKWIj3fBGPLimtK7Tko3ULR3og9RRUPw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", + "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.0.2.tgz", - "integrity": "sha512-Nvewe6YZaizAkGHHprbMkYqQulBjZCHKBGKeFPwoPtOA+a2Qi4pZzc/qXFyC5/2A6Z0mr2U1zg9rd04WBYMwBw==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", + "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.0.2.tgz", - "integrity": "sha512-ZUBYGZw5G3QrqDpRq1EWi3aHmvPZM8ijK5TFL6UbH16cYQ0JpANmuG2P66KB93Qe/lWWzbeAZk/tj1XqwoCuPA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", + "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.0.2.tgz", - "integrity": "sha512-fA9uW1dm7C0mEYGcKlbmLcVm2sKcye+1kPxh2cM4jVR+kQQMtHWsjIzeSpe2grQLSDan06z4n6hbr8b1c3hA8w==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", + "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", "optional": true }, "@nodelib/fs.scandir": { @@ -13508,6 +13794,11 @@ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, "@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", @@ -13527,13 +13818,21 @@ } }, "@swc/helpers": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", - "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", "requires": { "tslib": "^2.4.0" } }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@testing-library/dom": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.0.tgz", @@ -13825,9 +14124,10 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "@types/json5": { "version": "0.0.29", @@ -13902,9 +14202,10 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "dev": true }, "@types/stack-utils": { "version": "2.0.1", @@ -13952,107 +14253,65 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", - "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/type-utils": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "@typescript-eslint/type-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", + "dev": true, "requires": { - "lru-cache": "^6.0.0" + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "semver": "^7.5.4" } }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "@typescript-eslint/parser": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", - "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", - "requires": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", - "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==", - "requires": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", - "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", - "requires": { - "@typescript-eslint/typescript-estree": "5.52.0", - "@typescript-eslint/utils": "5.52.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", - "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==" - }, - "@typescript-eslint/typescript-estree": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz", - "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==", - "requires": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -14060,37 +14319,88 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, - "@typescript-eslint/utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz", - "integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==", + "@typescript-eslint/parser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" + } + }, + "@typescript-eslint/types": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", + "dev": true, "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -14098,17 +14408,19 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "@typescript-eslint/visitor-keys": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz", - "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", + "dev": true, "requires": { - "@typescript-eslint/types": "5.52.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "7.0.2", + "eslint-visitor-keys": "^3.4.1" } }, "@ungap/custom-elements": { @@ -14116,6 +14428,11 @@ "resolved": "https://registry.npmjs.org/@ungap/custom-elements/-/custom-elements-1.3.0.tgz", "integrity": "sha512-f4q/s76+8nOy+fhrNHyetuoPDR01lmlZB5czfCG+OOnBw/Wf+x48DcCDPmMQY7oL8xYFL8qfenMoiS8DUkKBUw==" }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "3d-force-graph": { "version": "1.71.5", "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.71.5.tgz", @@ -14138,13 +14455,13 @@ } }, "3d-force-graph-vr": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/3d-force-graph-vr/-/3d-force-graph-vr-2.2.2.tgz", - "integrity": "sha512-LSI24ugjT7SUE8JCusV5pmFHaFZ51EgGH1B7KMOK4JEgmUvogFwkJcXg7Go2mHI28WXDzFyBvrckWiwv5yLUeA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/3d-force-graph-vr/-/3d-force-graph-vr-2.2.5.tgz", + "integrity": "sha512-Lq31Ido+QQE0iWZNmyKVcsY2rmyMJaBzRgqG/4zZUY2nOBOmf/8TQF7kHSsW564UaZtx4FvjamHyVSkenPy9BA==", "requires": { "accessor-fn": "1", - "aframe": "^1.4", - "aframe-extras": "^6.1", + "aframe": "^1.5", + "aframe-extras": "^7.2", "aframe-forcegraph-component": "3", "kapsule": "1", "polished": "4" @@ -14162,9 +14479,9 @@ "integrity": "sha512-dml7D96DY/K5lt4Ra2jMnpL9Bhw5HEGws4p1OAIxFFj9Utd/RxNfEO3T3f0QIWFNwQU7gNxH9snUfqF/zNkP/w==" }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" }, "acorn-globals": { "version": "7.0.1", @@ -14216,9 +14533,9 @@ "dev": true }, "aframe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.4.2.tgz", - "integrity": "sha512-/sWCOB3ZNe5dWvMknIIMi5dwfU3rIyCiV+QkfYTDK36rNGivmUrmcdkregLmZk0OGHu9WAXoeUP3n0a23n6D0A==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aframe/-/aframe-1.5.0.tgz", + "integrity": "sha512-QvxxF2jbQbSDnPouPveSm93OxfFUu5V6UmQoLbbf207BR/o4bM3trpMDCoGiYE2oQCe0d/VG56OyFmYDwYDfBg==", "requires": { "@ungap/custom-elements": "^1.1.0", "buffer": "^6.0.3", @@ -14230,8 +14547,8 @@ "present": "0.0.6", "promise-polyfill": "^3.1.0", "super-animejs": "^3.1.0", - "super-three": "^0.147.1", - "three-bmfont-text": "github:dmarcos/three-bmfont-text#21d017046216e318362c48abd1a48bddfb6e0733", + "super-three": "0.158.0", + "three-bmfont-text": "github:dmarcos/three-bmfont-text#eed4878795be9b3e38cf6aec6b903f56acd1f695", "webvr-polyfill": "^0.10.12" }, "dependencies": { @@ -14242,11 +14559,13 @@ } }, "aframe-extras": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/aframe-extras/-/aframe-extras-6.1.1.tgz", - "integrity": "sha512-w3o3sKfQG+cwe1ZoKUxvMLehh0D/MlvFZeg2XuyIto+Nrs/kGLPcb/fsI5DXM4jociZ3wVQfqcA1BVF+0Nq45A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/aframe-extras/-/aframe-extras-7.2.0.tgz", + "integrity": "sha512-1LGWi55qgJiBP531m+MJomBAdRAVyNkCLAjtZH1TC+dkJxD0VbV6gZevc/30j3+053Wgptn5ZHSl0IdBafVPyA==", "requires": { - "three-pathfinding": "^0.7.0" + "nipplejs": "^0.10.1", + "three": "0.159.0", + "three-pathfinding": "^1.1.0" } }, "aframe-forcegraph-component": { @@ -14438,11 +14757,11 @@ "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==" }, "axios": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", - "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -14664,10 +14983,42 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } }, "call-bind": { "version": "1.0.2", @@ -14796,6 +15147,14 @@ "wrap-ansi": "^7.0.0" } }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, "clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -15137,11 +15496,6 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -15199,6 +15553,11 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "define-properties": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", @@ -15312,6 +15671,11 @@ "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==" }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, "electron-to-chromium": { "version": "1.4.299", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.299.tgz", @@ -15328,6 +15692,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -15498,48 +15870,47 @@ } }, "eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", - "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", - "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -15573,15 +15944,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, "globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", @@ -15619,6 +15981,77 @@ "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.31.7", "eslint-plugin-react-hooks": "^4.5.0" + }, + "dependencies": { + "@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "requires": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + } + }, + "@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, "eslint-config-prettier": { @@ -15811,50 +16244,50 @@ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "requires": {} }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "eslint-plugin-simple-import-sort": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz", + "integrity": "sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==", + "dev": true, + "requires": {} + }, + "eslint-plugin-unused-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.1.0.tgz", + "integrity": "sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==", + "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } + "eslint-rule-composer": "^0.3.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - } + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" } }, "esprima": { @@ -15864,9 +16297,9 @@ "dev": true }, "esquery": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.1.tgz", - "integrity": "sha512-3ZggxvMv5EEY1ssUVyHSVt0oPreyBfbUi1XikJVfjFiBeBDLdrb0IWoDiEwqT/2sUQi0TGaWtFhOGDD8RTpXgQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "requires": { "estraverse": "^5.1.0" } @@ -16028,18 +16461,10 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, - "flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "requires": { - "dtype": "^2.0.0" - } - }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "for-each": { "version": "0.3.3", @@ -16192,6 +16617,11 @@ "is-glob": "^4.0.3" } }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, "global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -16235,16 +16665,43 @@ "get-intrinsic": "^1.1.3" } }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "harmony-reflect": { "version": "1.6.2", @@ -16337,6 +16794,11 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -16392,13 +16854,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" }, - "immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "optional": true, - "peer": true - }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -17827,9 +18282,9 @@ } }, "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -18103,11 +18558,6 @@ } } }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -18187,6 +18637,11 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -18229,6 +18684,14 @@ "lodash-es": "4" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -18330,6 +18793,11 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -18480,61 +18948,41 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" - }, "new-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==" }, "next": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/next/-/next-13.0.2.tgz", - "integrity": "sha512-uQ5z5e4D9mOe8+upy6bQdYYjo/kk1v3jMW87kTy2TgAyAsEO+CkwRnMgyZ4JoHEnhPZLHwh7dk0XymRNLe1gFw==", - "requires": { - "@next/env": "13.0.2", - "@next/swc-android-arm-eabi": "13.0.2", - "@next/swc-android-arm64": "13.0.2", - "@next/swc-darwin-arm64": "13.0.2", - "@next/swc-darwin-x64": "13.0.2", - "@next/swc-freebsd-x64": "13.0.2", - "@next/swc-linux-arm-gnueabihf": "13.0.2", - "@next/swc-linux-arm64-gnu": "13.0.2", - "@next/swc-linux-arm64-musl": "13.0.2", - "@next/swc-linux-x64-gnu": "13.0.2", - "@next/swc-linux-x64-musl": "13.0.2", - "@next/swc-win32-arm64-msvc": "13.0.2", - "@next/swc-win32-ia32-msvc": "13.0.2", - "@next/swc-win32-x64-msvc": "13.0.2", - "@swc/helpers": "0.4.11", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz", + "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==", + "requires": { + "@next/env": "13.5.6", + "@next/swc-darwin-arm64": "13.5.6", + "@next/swc-darwin-x64": "13.5.6", + "@next/swc-linux-arm64-gnu": "13.5.6", + "@next/swc-linux-arm64-musl": "13.5.6", + "@next/swc-linux-x64-gnu": "13.5.6", + "@next/swc-linux-x64-musl": "13.5.6", + "@next/swc-win32-arm64-msvc": "13.5.6", + "@next/swc-win32-ia32-msvc": "13.5.6", + "@next/swc-win32-x64-msvc": "13.5.6", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", - "styled-jsx": "5.1.0", - "use-sync-external-store": "1.2.0" - }, - "dependencies": { - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - } + "postcss": "8.4.31", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0" } }, "next-router-mock": { @@ -18577,16 +19025,21 @@ "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" }, "nice-color-palettes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-1.0.1.tgz", - "integrity": "sha512-aHEFYKuGiaga8LqMi0Ttarqzn4tKS7BaIE2MeD9SDjv6yVc7DMIu/Eax4RvUgwR7vS0hXAUEIUx9P0/54O1W0g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", + "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", "requires": { + "got": "^9.2.2", "map-limit": "0.0.1", "minimist": "^1.2.0", - "new-array": "^1.0.0", - "xhr-request": "^1.0.1" + "new-array": "^1.0.0" } }, + "nipplejs": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/nipplejs/-/nipplejs-0.10.1.tgz", + "integrity": "sha512-BuKBDfdd7BVK6E7sivHwrRPh9TETsHuHEwuT95nAjRz2uJu5roYngNs+BdRe8nYf8mP6OZ9aRqdgMlqVsDMRcw==" + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -18610,6 +19063,11 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, "nosleep.js": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.7.0.tgz", @@ -18728,18 +19186,23 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -18786,12 +19249,12 @@ "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" }, "parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", "requires": { "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" + "xml2js": "^0.5.0" } }, "parse-headers": { @@ -18928,12 +19391,11 @@ } }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -18998,15 +19460,20 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, "present": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/present/-/present-0.0.6.tgz", "integrity": "sha512-8HGGcsH0xefDkhtWzXhigzieKtervWPQgyX8RtQD3cKr4wU307j8XANVSaZLxbR0+1EBonCJNOdUrQ7hbk3Kiw==" }, "prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==" }, "prettier-linter-helpers": { "version": "1.0.0", @@ -19016,6 +19483,13 @@ "fast-diff": "^1.1.2" } }, + "prettier-plugin-tailwindcss": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.11.tgz", + "integrity": "sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==", + "dev": true, + "requires": {} + }, "pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -19089,6 +19563,15 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -19110,16 +19593,6 @@ "is-buffer": "^1.0.2" } }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -19160,9 +19633,9 @@ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "react-force-graph": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/react-force-graph/-/react-force-graph-1.43.0.tgz", - "integrity": "sha512-g59ZWGrR6hkokY8RMO6FQHbltaIZ3+AGf9mrQs+s1+J26Sc2Wc6aro4cLW8PTHMIHgX/zml44yp60gRbzdFSMw==", + "version": "1.44.3", + "resolved": "https://registry.npmjs.org/react-force-graph/-/react-force-graph-1.44.3.tgz", + "integrity": "sha512-vDeL6f8bYmV9OKxivIHzPsyNDU604lUB315lA2dgznfaoeg7W/0HfdbgnvYIk+Usd3/m6fIi0zUeOHw8eTTo8g==", "requires": { "3d-force-graph": "1", "3d-force-graph-ar": "1", @@ -19353,11 +19826,6 @@ "functions-have-names": "^1.2.2" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -19408,6 +19876,14 @@ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -19446,9 +19922,9 @@ "dev": true }, "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "saxes": { "version": "6.0.0", @@ -19468,9 +19944,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "shallowequal": { "version": "1.1.0", @@ -19506,21 +19982,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -19596,10 +20057,10 @@ "internal-slot": "^1.0.4" } }, - "strict-uri-encode": { + "streamsearch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, "string-length": { "version": "4.0.2", @@ -19699,9 +20160,9 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "styled-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.0.tgz", - "integrity": "sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", "requires": { "client-only": "0.0.1" } @@ -19717,9 +20178,9 @@ "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==" }, "super-three": { - "version": "0.147.1", - "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.147.1.tgz", - "integrity": "sha512-H8yhlXqjscWpqYLhPQ/h3EfElNBxe3Ktp1tGVp13vBjIxF5sMVkAo2NpIDXkY8+MVhuTrA0ZN42IMNPdOKwKLg==" + "version": "0.158.0", + "resolved": "https://registry.npmjs.org/super-three/-/super-three-0.158.0.tgz", + "integrity": "sha512-dSqCbRHoQZD5ayz3WaOrUD2zuDfJhGyLIbGvhypUuICvb10cHLpNkxrrWOwA16SUOEPlE5z/rxTupjs41nzzhw==" }, "supports-color": { "version": "5.5.0", @@ -19796,30 +20257,19 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "three": { - "version": "0.155.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.155.0.tgz", - "integrity": "sha512-sNgCYmDijnIqkD/bMfk+1pHg3YzsxW7V2ChpuP6HCQ8NiZr3RufsXQr8M3SSUMjW4hG+sUk7YbyuY0DncaDTJQ==" + "version": "0.159.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.159.0.tgz", + "integrity": "sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA==" }, "three-bmfont-text": { - "version": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#21d017046216e318362c48abd1a48bddfb6e0733", - "integrity": "sha512-lIMa1n+QKNU1f/LZgtS1oUGpoop3MuVXrUr5ybZOUR3+Jk//zjqScnQpHml6MWyvZzL8A5/1Hd8Tsqd3M1kudA==", - "from": "three-bmfont-text@github:dmarcos/three-bmfont-text#21d017046216e318362c48abd1a48bddfb6e0733", + "version": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#eed4878795be9b3e38cf6aec6b903f56acd1f695", + "integrity": "sha512-FDlyR8SyHQ0Ek38qBx5Hg/AwPuBI/1w/QWpMgzw19Vn81xsDNFTOXJpU0HcvI78C72wwXjJ3T7+EX7k2geDV4Q==", + "from": "three-bmfont-text@github:dmarcos/three-bmfont-text#eed4878795be9b3e38cf6aec6b903f56acd1f695", "requires": { "array-shuffle": "^1.0.1", - "inherits": "^2.0.1", "layout-bmfont-text": "^1.2.0", - "nice-color-palettes": "^1.0.1", - "object-assign": "^4.0.1", - "quad-indices": "^2.0.1", - "three-buffer-vertex-data": "dmarcos/three-buffer-vertex-data#69378fc58daf27d3b1d930df9f233473e4a4818c" - } - }, - "three-buffer-vertex-data": { - "version": "git+ssh://git@github.com/dmarcos/three-buffer-vertex-data.git#69378fc58daf27d3b1d930df9f233473e4a4818c", - "integrity": "sha512-ZPCCbGfueRzd2/YwH136UnVN+N11Mvxu7uPaEzIdtuk0m5HPs1LGXOM5hOkpxamjvqSC6MDJ3nd11grGi7sMKw==", - "from": "three-buffer-vertex-data@dmarcos/three-buffer-vertex-data#69378fc58daf27d3b1d930df9f233473e4a4818c", - "requires": { - "flatten-vertex-data": "^1.0.0" + "nice-color-palettes": "^3.0.0", + "quad-indices": "^2.0.1" } }, "three-forcegraph": { @@ -19840,9 +20290,10 @@ } }, "three-pathfinding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/three-pathfinding/-/three-pathfinding-0.7.0.tgz", - "integrity": "sha512-UwWvzgio1UFe81n5jKHNzB4B+AG3wfZ54OKp7bTb1MHuC3cy6RTtr0dbbiPQQoqxzr+DRArR2DUwQSEknw5+nw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/three-pathfinding/-/three-pathfinding-1.2.0.tgz", + "integrity": "sha512-TlIfy+mLOdP7OhQG4Mn1dNONYbhu2Xe+AD7jL8SbdKdAHxH/TF68svpk2c8UrSfR/3YWQ87Tq/lp5HQO/QuaMw==", + "requires": {} }, "three-render-objects": { "version": "1.28.6", @@ -19855,11 +20306,6 @@ "polished": "4" } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" - }, "timezone-soft": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/timezone-soft/-/timezone-soft-1.4.1.tgz", @@ -19886,6 +20332,11 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -19895,9 +20346,9 @@ } }, "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", @@ -19906,6 +20357,13 @@ "url-parse": "^1.5.3" } }, + "ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "requires": {} + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -20025,10 +20483,13 @@ "requires-port": "^1.0.0" } }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } }, "use-isomorphic-layout-effect": { "version": "1.1.2", @@ -20077,6 +20538,15 @@ "makeerror": "1.0.12" } }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, "webvr-polyfill": { "version": "0.10.12", "resolved": "https://registry.npmjs.org/webvr-polyfill/-/webvr-polyfill-0.10.12.tgz", @@ -20150,9 +20620,10 @@ } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true }, "word-wrapper": { "version": "1.0.7", @@ -20229,20 +20700,6 @@ "xtend": "^4.0.0" } }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -20255,9 +20712,9 @@ "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" }, "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" diff --git a/package.json b/package.json index 85891dc1..a768d015 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,14 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "eslint --ext .ts,.tsx", + "lint": "next lint", + "lint:fix": "eslint src --fix && pnpm format", + "lint:strict": "eslint --max-warnings=0 src", "test": "jest", "coverage": "jest --coverage", - "export": "next export" + "export": "next export", + "format": "prettier --check --ignore-path .gitignore .", + "format:fix": "prettier --write --ignore-path .gitignore ." }, "dependencies": { "@amplitude/analytics-browser": "^1.9.4", @@ -28,15 +32,12 @@ "@types/node": "18.11.9", "@types/react": "18.0.25", "@types/react-dom": "18.0.8", - "@typescript-eslint/eslint-plugin": "^5.48.1", - "@typescript-eslint/parser": "^5.48.1", "3d-force-graph-vr": "^2.2.2", "aframe": "^1.4.2", "axios": "^1.2.2", "clsx": "^1.2.1", "d3-force": "^3.0.0", "date-fns": "^2.30.0", - "eslint": "8.27.0", "eslint-config-next": "13.0.2", "eslint-config-prettier": "^8.6.0", "eslint-plugin-prettier": "^4.2.1", @@ -47,10 +48,9 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "moment-timezone": "^0.5.38", - "next": "13.0.2", + "next": "^13.5.6", "next-router-mock": "^0.9.9", "papaparse": "^5.4.1", - "prettier": "^2.8.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-force-graph": "^1.43.0", @@ -74,12 +74,19 @@ "@types/lodash": "^4.14.202", "@types/papaparse": "^5.3.8", "@types/testing-library__user-event": "^4.2.0", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", "autoprefixer": "^10.4.13", "babel-jest": "^29.5.0", + "eslint": "^8.56.0", + "eslint-plugin-simple-import-sort": "^12.0.0", + "eslint-plugin-unused-imports": "^3.1.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "postcss": "^8.4.18", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.11", "react-test-renderer": "^18.2.0", "tailwindcss": "^3.2.2" } diff --git a/postcss.config.js b/postcss.config.js index 33ad091d..12a703d9 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -3,4 +3,4 @@ module.exports = { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/src/axiosInstance.ts b/src/axiosInstance.ts index e1bf0f15..4a0e3fdf 100644 --- a/src/axiosInstance.ts +++ b/src/axiosInstance.ts @@ -1,9 +1,10 @@ -import axios, { AxiosError, AxiosResponse } from 'axios'; +import axios from 'axios'; +import { toast } from 'react-toastify'; + import { conf } from './configs/index'; +import { tokenRefreshEventEmitter } from './services/EventEmitter'; import { StorageService } from './services/StorageService'; -import { toast } from 'react-toastify'; import { IToken } from './utils/types'; -import { tokenRefreshEventEmitter } from './services/EventEmitter'; let isRefreshing = false; diff --git a/src/components/announcements/TcAnnouncementsAlert.spec.tsx b/src/components/announcements/TcAnnouncementsAlert.spec.tsx index 2da01b59..551bff7a 100644 --- a/src/components/announcements/TcAnnouncementsAlert.spec.tsx +++ b/src/components/announcements/TcAnnouncementsAlert.spec.tsx @@ -1,6 +1,7 @@ +import { render, screen } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; + import TcAnnouncementsAlert from './TcAnnouncementsAlert'; const mockGrantWritePermissions = jest.fn(); diff --git a/src/components/announcements/TcAnnouncementsAlert.tsx b/src/components/announcements/TcAnnouncementsAlert.tsx index be5f9b7b..1bba45a3 100644 --- a/src/components/announcements/TcAnnouncementsAlert.tsx +++ b/src/components/announcements/TcAnnouncementsAlert.tsx @@ -1,10 +1,11 @@ import React from 'react'; + import TcAlert from '../shared/TcAlert'; +import TcButton from '../shared/TcButton'; import TcCollapse from '../shared/TcCollapse'; import TcText from '../shared/TcText'; -import TcButton from '../shared/TcButton'; -import useAppStore from '../../store/useStore'; import { useToken } from '../../context/TokenContext'; +import useAppStore from '../../store/useStore'; function TcAnnouncementsAlert() { const { grantWritePermissions } = useAppStore(); @@ -37,8 +38,8 @@ function TcAnnouncementsAlert() { }} > -
+
diff --git a/src/components/announcements/TcAnnouncementsTable.tsx b/src/components/announcements/TcAnnouncementsTable.tsx index 0fec5768..e9513e79 100644 --- a/src/components/announcements/TcAnnouncementsTable.tsx +++ b/src/components/announcements/TcAnnouncementsTable.tsx @@ -1,27 +1,28 @@ -import React, { useState } from 'react'; import { + Chip, + IconButton, + Menu, + MenuItem, Table, TableBody, TableCell, TableHead, TableRow, - IconButton, - MenuItem, - Menu, - Chip, } from '@mui/material'; -import { BsThreeDotsVertical } from 'react-icons/bs'; +import moment from 'moment'; import Router from 'next/router'; -import TcDialog from '../shared/TcDialog'; -import TcButton from '../shared/TcButton'; +import React, { useState } from 'react'; import { AiOutlineClose } from 'react-icons/ai'; +import { BsThreeDotsVertical } from 'react-icons/bs'; +import { MdDelete, MdModeEdit } from 'react-icons/md'; + +import Loading from '../global/Loading'; +import TcButton from '../shared/TcButton'; +import TcDialog from '../shared/TcDialog'; import TcText from '../shared/TcText'; -import useAppStore from '../../store/useStore'; import { useSnackbar } from '../../context/SnackbarContext'; -import { MdModeEdit, MdDelete } from 'react-icons/md'; -import Loading from '../global/Loading'; import { truncateCenter } from '../../helpers/helper'; -import moment from 'moment'; +import useAppStore from '../../store/useStore'; interface Channel { channelId: string; @@ -145,7 +146,7 @@ function TcAnnouncementsTable({ switch (cellType) { case 'title': return ( -
+
@@ -167,9 +168,9 @@ function TcAnnouncementsTable({ : ''} } - variant="subtitle2" + variant='subtitle2' /> - + {announcement.data .reduce((unique: string[], item: AnnouncementData) => { const itemType = item.type; @@ -181,7 +182,7 @@ function TcAnnouncementsTable({ .map((type: string, index: React.Key | null | undefined) => ( } - size="small" + size='small' sx={{ borderRadius: '4px', borderColor: '#D1D1D1', @@ -212,7 +213,7 @@ function TcAnnouncementsTable({ ); case 'channels': return ( -
+
text !== '') .join('')} - variant="subtitle2" + variant='subtitle2' />
); @@ -286,13 +287,13 @@ function TcAnnouncementsTable({ // ); case 'scheduledAt': return ( -
+
); @@ -300,16 +301,16 @@ function TcAnnouncementsTable({ return ( <> handleClick(event, announcement.id)} > @@ -396,34 +397,34 @@ function TcAnnouncementsTable({ return ( <> - +
- + - + {/* */} - + @@ -491,36 +492,36 @@ function TcAnnouncementsTable({ }} children={ <> -
+
setDeleteConfirmDialogOpen(false)} />
-
+
-
+
-
+
setDeleteConfirmDialogOpen(false)} /> selectedAnnouncementId && handleDeleteAnnouncements(selectedAnnouncementId) diff --git a/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.spec.tsx b/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.spec.tsx index e3e0ce30..71cb7b9f 100644 --- a/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.spec.tsx +++ b/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent } from '@testing-library/react'; + import TcConfirmSchaduledAnnouncementsDialog from './TcConfirmSchaduledAnnouncementsDialog'; const mockHandleCreateAnnouncements = jest.fn(); diff --git a/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.tsx b/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.tsx index 3e06c7ac..c97754a4 100644 --- a/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.tsx +++ b/src/components/announcements/TcConfirmSchaduledAnnouncementsDialog.tsx @@ -1,10 +1,11 @@ +import moment from 'moment'; import React, { useState } from 'react'; -import TcButton from '../shared/TcButton'; import { AiOutlineClose } from 'react-icons/ai'; +import { FaDiscord } from 'react-icons/fa6'; + +import TcButton from '../shared/TcButton'; import TcDialog from '../shared/TcDialog'; import TcText from '../shared/TcText'; -import { FaDiscord } from 'react-icons/fa6'; -import moment from 'moment'; import { IRoles, IUser } from '../../utils/interfaces'; interface ITcConfirmSchaduledAnnouncementsDialogProps { @@ -46,7 +47,7 @@ function TcConfirmSchaduledAnnouncementsDialog({ <> setConfirmSchadulerDialog(true)} /> @@ -62,36 +63,36 @@ function TcConfirmSchaduledAnnouncementsDialog({ }} children={ <> -
+
setConfirmSchadulerDialog(false)} />
-
+
-
-
- +
+
+
-
-
+
+
{selectedChannels @@ -107,13 +108,13 @@ function TcConfirmSchaduledAnnouncementsDialog({ .join(', ')}
{selectedUsernames && selectedUsernames.length > 0 ? ( -
-
+
+
{' '}
{selectedChannels @@ -132,13 +133,13 @@ function TcConfirmSchaduledAnnouncementsDialog({ '' )} {selectedRoles && selectedRoles.length > 0 ? ( -
-
+
+
{selectedRoles.map((role) => `#${role.name}`).join(', ')} @@ -155,10 +156,10 @@ function TcConfirmSchaduledAnnouncementsDialog({ '' )}
-
+
{ setConfirmSchadulerDialog(false); handleCreateAnnouncements(false); diff --git a/src/components/announcements/TcTimeZone.spec.tsx b/src/components/announcements/TcTimeZone.spec.tsx index 351de2bc..3b294a2e 100644 --- a/src/components/announcements/TcTimeZone.spec.tsx +++ b/src/components/announcements/TcTimeZone.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, waitFor } from '@testing-library/react'; + import TcTimeZone from './TcTimeZone'; test('should handle zone selection', async () => { diff --git a/src/components/announcements/TcTimeZone.tsx b/src/components/announcements/TcTimeZone.tsx index b9fdc857..88a3ba8f 100644 --- a/src/components/announcements/TcTimeZone.tsx +++ b/src/components/announcements/TcTimeZone.tsx @@ -1,14 +1,14 @@ +import { InputAdornment } from '@mui/material'; +import moment from 'moment'; +import momentTZ from 'moment-timezone'; import React, { useEffect, useState } from 'react'; -import TcButton from '../shared/TcButton'; import { FaGlobeAmericas } from 'react-icons/fa'; -import TcPopover from '../shared/TcPopover'; - -import momentTZ from 'moment-timezone'; -import moment from 'moment'; +import { MdSearch } from 'react-icons/md'; import 'moment-timezone'; + +import TcButton from '../shared/TcButton'; import TcInput from '../shared/TcInput'; -import { InputAdornment } from '@mui/material'; -import { MdSearch } from 'react-icons/md'; +import TcPopover from '../shared/TcPopover'; const timeZonesList = momentTZ.tz.names(); @@ -55,14 +55,14 @@ function TcTimeZone({ handleZone }: ITcTimeZoneProps) { }, [activeZone]); return ( -
+
} + startIcon={} aria-describedby={id} onClick={handleClick} /> @@ -75,18 +75,18 @@ function TcTimeZone({ handleZone }: ITcTimeZoneProps) { style: { width: 'auto' }, }} content={ -
-
+
+
+ ), @@ -94,19 +94,19 @@ function TcTimeZone({ handleZone }: ITcTimeZoneProps) { onChange={searchZones} />
-
    +
      {zones.length > 0 ? ( zones.map((el) => (
    • handleTimeZoneSelect(el)} >
      {el}
    • )) ) : ( -
      +
      Not founded
      )} diff --git a/src/components/announcements/create/TcIconContainer.spec.tsx b/src/components/announcements/create/TcIconContainer.spec.tsx index 4c3f102b..b157f5d5 100644 --- a/src/components/announcements/create/TcIconContainer.spec.tsx +++ b/src/components/announcements/create/TcIconContainer.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcIconContainer from './TcIconContainer'; describe('TcIconContainer', () => { diff --git a/src/components/announcements/create/TcIconContainer.tsx b/src/components/announcements/create/TcIconContainer.tsx index 4b5c68a0..6020709f 100644 --- a/src/components/announcements/create/TcIconContainer.tsx +++ b/src/components/announcements/create/TcIconContainer.tsx @@ -22,7 +22,7 @@ interface ITcIconContainerProps { */ function TcIconContainer({ children }: ITcIconContainerProps): JSX.Element { return ( -
      +
      {children}
      ); diff --git a/src/components/announcements/create/privateMessaageContainer/TcPrivateMessageContainer.tsx b/src/components/announcements/create/privateMessaageContainer/TcPrivateMessageContainer.tsx index 5d7f4a9f..09caf1e1 100644 --- a/src/components/announcements/create/privateMessaageContainer/TcPrivateMessageContainer.tsx +++ b/src/components/announcements/create/privateMessaageContainer/TcPrivateMessageContainer.tsx @@ -1,22 +1,23 @@ -import React, { useEffect, useState } from 'react'; -import TcText from '../../../shared/TcText'; -import { MdOutlineAnnouncement } from 'react-icons/md'; -import TcIconContainer from '../TcIconContainer'; -import TcButton from '../../../shared/TcButton'; import { FormControl, FormControlLabel } from '@mui/material'; -import TcInput from '../../../shared/TcInput'; -import TcSwitch from '../../../shared/TcSwitch'; -import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; -import TcButtonGroup from '../../../shared/TcButtonGroup'; import clsx from 'clsx'; +import React, { useEffect, useState } from 'react'; +import { MdOutlineAnnouncement } from 'react-icons/md'; + import TcPrivateMessagePreviewDialog from './TcPrivateMessagePreviewDialog'; import TcRolesAutoComplete from './TcRolesAutoComplete'; import TcUsersAutoComplete from './TcUsersAutoComplete'; -import { IRoles, IUser } from '../../../../utils/interfaces'; +import TcIconContainer from '../TcIconContainer'; import { DiscordData, DiscordPrivateOptions, } from '../../../../pages/announcements/edit-announcements'; +import { IRoles, IUser } from '../../../../utils/interfaces'; +import TcButton from '../../../shared/TcButton'; +import TcButtonGroup from '../../../shared/TcButtonGroup'; +import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; +import TcInput from '../../../shared/TcInput'; +import TcSwitch from '../../../shared/TcSwitch'; +import TcText from '../../../shared/TcText'; export enum MessageType { Both = 'Both', @@ -134,19 +135,19 @@ function TcPrivateMessageContainer({ }, [isEdit, privateAnnouncementsData]); return ( -
      -
      -
      +
      +
      +
      } label={ -
      - +
      +
      } />
      -
      +
      {messageTypesArray.map((el) => (
      {privateMessage && ( -
      +
      - +
      -
      +
      - +
      - + { diff --git a/src/components/announcements/create/privateMessaageContainer/TcPrivateMessagePreviewDialog.tsx b/src/components/announcements/create/privateMessaageContainer/TcPrivateMessagePreviewDialog.tsx index 6be77de4..eb2eac30 100644 --- a/src/components/announcements/create/privateMessaageContainer/TcPrivateMessagePreviewDialog.tsx +++ b/src/components/announcements/create/privateMessaageContainer/TcPrivateMessagePreviewDialog.tsx @@ -1,7 +1,8 @@ import React, { useState } from 'react'; -import TcDialog from '../../../shared/TcDialog'; -import TcButton from '../../../shared/TcButton'; import { AiOutlineClose } from 'react-icons/ai'; + +import TcButton from '../../../shared/TcButton'; +import TcDialog from '../../../shared/TcDialog'; import TcText from '../../../shared/TcText'; interface ITcPublicMessagePreviewDialogProps { @@ -21,8 +22,8 @@ function TcPublicMessagePreviewDialog({ return ( <> -
      +
      setPreviewDialogOpen(false)} />
      -
      +
      -
      -
      +
      +
      {selectedRoles && selectedRoles.map((role, index, array) => ( - - {'@'} + + @ {index < array.length - 1 && ', '} ))}
      -
      +
      {selectedUsernames && selectedUsernames.map((username, index, array) => ( - - {'#'} + + # {index < array.length - 1 && ', '} @@ -107,13 +108,13 @@ function TcPublicMessagePreviewDialog({
      -
      +
      setPreviewDialogOpen(false)} sx={{ width: '100%' }} /> diff --git a/src/components/announcements/create/privateMessaageContainer/TcRolesAutoComplete.tsx b/src/components/announcements/create/privateMessaageContainer/TcRolesAutoComplete.tsx index 9fa74550..4ee5ca77 100644 --- a/src/components/announcements/create/privateMessaageContainer/TcRolesAutoComplete.tsx +++ b/src/components/announcements/create/privateMessaageContainer/TcRolesAutoComplete.tsx @@ -1,10 +1,11 @@ +import { Chip, CircularProgress } from '@mui/material'; import React, { useEffect, useState } from 'react'; + import { useToken } from '../../../../context/TokenContext'; +import { debounce } from '../../../../helpers/helper'; import useAppStore from '../../../../store/useStore'; import { FetchedData, IRoles } from '../../../../utils/interfaces'; -import { debounce } from '../../../../helpers/helper'; import TcAutocomplete from '../../../shared/TcAutocomplete'; -import { Chip, CircularProgress } from '@mui/material'; interface ITcRolesAutoCompleteProps { isEdit?: boolean; @@ -153,11 +154,11 @@ function TcRolesAutoComplete({ option.name} - label={'Select Role(s)'} + label='Select Role(s)' multiple={true} loading={isLoading} loadingText={ -
      +
      } @@ -175,7 +176,7 @@ function TcRolesAutoComplete({ renderTags={(value, getTagProps) => value.map((option, index) => ( } - size="small" + size='small' sx={{ borderRadius: '4px', borderColor: '#D1D1D1', diff --git a/src/components/announcements/create/privateMessaageContainer/TcUsersAutoComplete.tsx b/src/components/announcements/create/privateMessaageContainer/TcUsersAutoComplete.tsx index 7ffc8edc..777ae773 100644 --- a/src/components/announcements/create/privateMessaageContainer/TcUsersAutoComplete.tsx +++ b/src/components/announcements/create/privateMessaageContainer/TcUsersAutoComplete.tsx @@ -1,13 +1,14 @@ +import { Chip, CircularProgress } from '@mui/material'; import React, { useEffect, useState } from 'react'; + +import { conf } from '../../../../configs'; import { useToken } from '../../../../context/TokenContext'; +import { debounce, truncateCenter } from '../../../../helpers/helper'; import useAppStore from '../../../../store/useStore'; import { FetchedData, IUser } from '../../../../utils/interfaces'; -import { debounce, truncateCenter } from '../../../../helpers/helper'; import TcAutocomplete from '../../../shared/TcAutocomplete'; -import { Chip, CircularProgress } from '@mui/material'; import TcAvatar from '../../../shared/TcAvatar'; import TcText from '../../../shared/TcText'; -import { conf } from '../../../../configs'; interface ITcUsersAutoCompleteProps { isEdit?: boolean; @@ -161,11 +162,11 @@ function TcUsersAutoComplete({ option.ngu} - label={'Select User(s)'} + label='Select User(s)' multiple={true} loading={isLoading} loadingText={ -
      +
      } @@ -185,7 +186,7 @@ function TcUsersAutoComplete({ disableCloseOnSelect renderOption={(props, option) => (
    • -
      +
    • @@ -208,9 +209,9 @@ function TcUsersAutoComplete({ renderTags={(value, getTagProps) => value.map((option, index) => ( +
      - +
      } - size="small" + size='small' sx={{ borderRadius: '4px', borderColor: '#D1D1D1', diff --git a/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.spec.tsx b/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.spec.tsx index 88d1b3d1..532c97ad 100644 --- a/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.spec.tsx +++ b/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcPublicMessageContainer from './TcPublicMessageContainer'; import { TokenContext } from '../../../../context/TokenContext'; diff --git a/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.tsx b/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.tsx index fba55ba9..338307d9 100644 --- a/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.tsx +++ b/src/components/announcements/create/publicMessageContainer/TcPublicMessageContainer.tsx @@ -1,17 +1,18 @@ +import { FormControl, FormHelperText, InputLabel } from '@mui/material'; import React, { useContext, useEffect, useState } from 'react'; -import TcText from '../../../shared/TcText'; import { MdAnnouncement } from 'react-icons/md'; -import TcIconContainer from '../TcIconContainer'; -import TcSelect from '../../../shared/TcSelect'; -import { FormControl, FormHelperText, InputLabel } from '@mui/material'; -import TcInput from '../../../shared/TcInput'; + import TcPublicMessagePreviewDialog from './TcPublicMessagePreviewDialog'; +import TcIconContainer from '../TcIconContainer'; import { ChannelContext } from '../../../../context/ChannelContext'; -import TcPlatformChannelList from '../../../communitySettings/platform/TcPlatformChannelList'; -import { IGuildChannels } from '../../../../utils/types'; import { DiscordData } from '../../../../pages/announcements/edit-announcements'; +import { IGuildChannels } from '../../../../utils/types'; +import TcPlatformChannelList from '../../../communitySettings/platform/TcPlatformChannelList'; import TcPermissionHints from '../../../global/TcPermissionHints'; import TcButton from '../../../shared/TcButton'; +import TcInput from '../../../shared/TcInput'; +import TcSelect from '../../../shared/TcSelect'; +import TcText from '../../../shared/TcText'; export interface FlattenedChannel { id: string; @@ -43,7 +44,7 @@ function TcPublicMessageContainer({ const [isDropdownVisible, setIsDropdownVisible] = useState(false); const flattenChannels = (channels: IGuildChannels[]): FlattenedChannel[] => { - let flattened: FlattenedChannel[] = []; + const flattened: FlattenedChannel[] = []; channels.forEach((channel) => { if (channel.subChannels) { @@ -119,13 +120,13 @@ function TcPublicMessageContainer({ }; return ( -
      -
      -
      +
      +
      +
      - +
      channel.label)} />
      -
      - - Select Channels +
      + + Select Channels -
      -
      +
      +
      -
      +
      @@ -168,26 +169,26 @@ function TcPublicMessageContainer({ {showError && ( )} -
      - +
      +
      - + { @@ -73,7 +74,7 @@ describe('TcPublicMessagePreviewDialog', () => { it('preview button is disabled when isPreviewDialogEnabled is false', () => { render( ); diff --git a/src/components/announcements/create/publicMessageContainer/TcPublicMessagePreviewDialog.tsx b/src/components/announcements/create/publicMessageContainer/TcPublicMessagePreviewDialog.tsx index 15274c87..53a9295a 100644 --- a/src/components/announcements/create/publicMessageContainer/TcPublicMessagePreviewDialog.tsx +++ b/src/components/announcements/create/publicMessageContainer/TcPublicMessagePreviewDialog.tsx @@ -1,7 +1,8 @@ import React, { useState } from 'react'; -import TcDialog from '../../../shared/TcDialog'; -import TcButton from '../../../shared/TcButton'; import { AiOutlineClose } from 'react-icons/ai'; + +import TcButton from '../../../shared/TcButton'; +import TcDialog from '../../../shared/TcDialog'; import TcText from '../../../shared/TcText'; interface ITcPublicMessagePreviewDialogProps { @@ -19,8 +20,8 @@ function TcPublicMessagePreviewDialog({ return ( <> -
      +
      setPreviewDialogOpen(false)} />
      -
      +
      -
      +
      {selectedChannels && selectedChannels.map((channel, index, array) => ( - - {'#'} + + # {index < array.length - 1 && ', '} @@ -79,13 +80,13 @@ function TcPublicMessagePreviewDialog({
      -
      +
      setPreviewDialogOpen(false)} sx={{ width: '100%' }} /> diff --git a/src/components/announcements/create/scheduleAnnouncement/TcDateTimePopover.tsx b/src/components/announcements/create/scheduleAnnouncement/TcDateTimePopover.tsx index fbe8f715..9c22c22a 100644 --- a/src/components/announcements/create/scheduleAnnouncement/TcDateTimePopover.tsx +++ b/src/components/announcements/create/scheduleAnnouncement/TcDateTimePopover.tsx @@ -1,10 +1,11 @@ -import React from 'react'; -import { StaticDatePicker } from '@mui/x-date-pickers/StaticDatePicker'; -import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; -import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; import { StaticTimePicker } from '@mui/x-date-pickers'; +import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { StaticDatePicker } from '@mui/x-date-pickers/StaticDatePicker'; +import React from 'react'; import { FiCalendar } from 'react-icons/fi'; import { MdAccessTime } from 'react-icons/md'; + import TcPopover from '../../../shared/TcPopover'; import TcTabs from '../../../shared/TcTabs'; import TcTab from '../../../shared/TcTabs/TcTab'; @@ -41,8 +42,8 @@ function TcDateTimePopover({ const tabContent = [ , +
      {tabContent[activeTab]} setActiveTab(newValue)} - indicatorColor="secondary" - className="w-full border-t border-gray-200" + indicatorColor='secondary' + className='w-full border-t border-gray-200' > } - className="w-1/2" - data-testid="calendar-icon" + className='w-1/2' + data-testid='calendar-icon' /> } - className="w-1/2" - data-testid="time-icon" + className='w-1/2' + data-testid='time-icon' />
      diff --git a/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.spec.tsx b/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.spec.tsx index b07aef74..3e510dc2 100644 --- a/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.spec.tsx +++ b/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom'; + import TcScheduleAnnouncement from './TcScheduleAnnouncement'; describe('TcScheduleAnnouncement Tests', () => { diff --git a/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.tsx b/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.tsx index 394f88f4..58500902 100644 --- a/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.tsx +++ b/src/components/announcements/create/scheduleAnnouncement/TcScheduleAnnouncement.tsx @@ -1,11 +1,12 @@ +import moment from 'moment'; import React, { useEffect, useState } from 'react'; -import TcIconContainer from '../TcIconContainer'; import { MdCalendarMonth } from 'react-icons/md'; -import TcText from '../../../shared/TcText'; -import TcButton from '../../../shared/TcButton'; -import moment from 'moment'; + import TcDateTimePopover from './TcDateTimePopover'; +import TcIconContainer from '../TcIconContainer'; import { validateDateTime } from '../../../../helpers/helper'; +import TcButton from '../../../shared/TcButton'; +import TcText from '../../../shared/TcText'; export interface ITcScheduleAnnouncementProps { isEdit?: boolean; @@ -94,28 +95,28 @@ function TcScheduleAnnouncement({ }, [isEdit, preSelectedTime]); return ( -
      -
      -
      +
      +
      +
      - + - +
      } disableElevation={true} - className="border border-black bg-gray-100 shadow-md" + className='border border-black bg-gray-100 shadow-md' sx={{ color: 'black', height: '2.4rem', paddingX: '1rem' }} aria-describedby={id} onClick={handleOpen} /> {!isDateValid && ( )} +
      - - Select Platform + + Select Platform diff --git a/src/components/centric/selectCommunity/TcCommunityList.tsx b/src/components/centric/selectCommunity/TcCommunityList.tsx index f55deab0..d4b7ab81 100644 --- a/src/components/centric/selectCommunity/TcCommunityList.tsx +++ b/src/components/centric/selectCommunity/TcCommunityList.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useState } from 'react'; + import TcCommunityListItems from './TcCommunityListItems'; import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; diff --git a/src/components/centric/selectCommunity/TcCommunityListItems.tsx b/src/components/centric/selectCommunity/TcCommunityListItems.tsx index eba8f610..4889fbf6 100644 --- a/src/components/centric/selectCommunity/TcCommunityListItems.tsx +++ b/src/components/centric/selectCommunity/TcCommunityListItems.tsx @@ -1,12 +1,13 @@ +import clsx from 'clsx'; +import Image from 'next/image'; import React, { useEffect, useState } from 'react'; +import { MdGroups } from 'react-icons/md'; + import TcAvatar from '../../shared/TcAvatar'; import TcText from '../../shared/TcText'; -import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; -import clsx from 'clsx'; -import { StorageService } from '../../../services/StorageService'; -import { MdGroups } from 'react-icons/md'; import { conf } from '../../../configs'; -import Image from 'next/image'; +import { StorageService } from '../../../services/StorageService'; +import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; /** * Props for the TcCommunityListItems component. @@ -76,10 +77,10 @@ function TcCommunityListItems({ return ( ); } @@ -89,31 +90,31 @@ function TcCommunityListItems({ if (communities.length === 0) { return ( -
      - +
      +
      ); } return ( -
      +
      {communities.map((community, index) => (
      setSelectedCommunity(community)} > {community?.avatarURL ? ( - + ) : ( - + {renderPlatformAvatar(community)} )} - +
      ))}
      diff --git a/src/components/centric/selectCommunity/TcSelectCommunity.spec.tsx b/src/components/centric/selectCommunity/TcSelectCommunity.spec.tsx index 32b0e73d..443bc92c 100644 --- a/src/components/centric/selectCommunity/TcSelectCommunity.spec.tsx +++ b/src/components/centric/selectCommunity/TcSelectCommunity.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; -import { render, screen, fireEvent } from '@testing-library/react'; + import TcCommunityListItems from './TcCommunityListItems'; import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; diff --git a/src/components/centric/selectCommunity/TcSelectCommunity.tsx b/src/components/centric/selectCommunity/TcSelectCommunity.tsx index d4b304db..a4319ed8 100644 --- a/src/components/centric/selectCommunity/TcSelectCommunity.tsx +++ b/src/components/centric/selectCommunity/TcSelectCommunity.tsx @@ -1,18 +1,19 @@ +import router from 'next/router'; import React, { useEffect, useState } from 'react'; -import TcText from '../../shared/TcText'; -import TcBoxContainer from '../../shared/TcBox/TcBoxContainer'; -import TcInput from '../../shared/TcInput'; -import TcCommunityList from './TcCommunityList'; -import TcButton from '../../shared/TcButton'; import { BsPlus } from 'react-icons/bs'; -import router from 'next/router'; -import useAppStore from '../../../store/useStore'; + +import TcCommunityList from './TcCommunityList'; import Loading from '../../global/Loading'; -import { debounce } from '../../../helpers/helper'; -import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; -import { StorageService } from '../../../services/StorageService'; import SimpleBackdrop from '../../global/LoadingBackdrop'; +import TcBoxContainer from '../../shared/TcBox/TcBoxContainer'; +import TcButton from '../../shared/TcButton'; +import TcInput from '../../shared/TcInput'; +import TcText from '../../shared/TcText'; import { useToken } from '../../../context/TokenContext'; +import { debounce } from '../../../helpers/helper'; +import { StorageService } from '../../../services/StorageService'; +import useAppStore from '../../../store/useStore'; +import { IDiscordModifiedCommunity } from '../../../utils/interfaces'; export interface CommunityData { limit: number; @@ -71,24 +72,24 @@ function TcSelectCommunity() { } return ( -
      +
      -
      +
      debouncedFetchCommunities(e.target.value)} />
      @@ -104,29 +105,29 @@ function TcSelectCommunity() { )} } - className="md:w-3/5 mx-auto border border-custom-gray min-h-[20rem] max-h-[25rem] overflow-y-scroll rounded-lg" + className='border-custom-gray mx-auto max-h-[25rem] min-h-[20rem] overflow-y-scroll rounded-lg border md:w-3/5' /> -
      +
      } - text="Create" + text='Create' sx={{ width: '15rem', padding: '0.5rem' }} - variant="outlined" + variant='outlined' onClick={() => router.push('/centric/create-new-community')} />
      diff --git a/src/components/communitySettings/TcIntegrationCard.spec.tsx b/src/components/communitySettings/TcIntegrationCard.spec.tsx index b2958cdf..76e68d95 100644 --- a/src/components/communitySettings/TcIntegrationCard.spec.tsx +++ b/src/components/communitySettings/TcIntegrationCard.spec.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; import TcIntegrationCard from './TcIntegrationCard'; diff --git a/src/components/communitySettings/TcIntegrationCard.tsx b/src/components/communitySettings/TcIntegrationCard.tsx index 287ae8b9..7b80411d 100644 --- a/src/components/communitySettings/TcIntegrationCard.tsx +++ b/src/components/communitySettings/TcIntegrationCard.tsx @@ -1,6 +1,7 @@ +import { CardProps } from '@mui/material'; import React from 'react'; + import TcCard from '../shared/TcCard'; -import { CardProps } from '@mui/material'; interface ITcIntegrationCardProps extends CardProps { children: React.ReactElement | JSX.Element; @@ -10,9 +11,9 @@ function TcIntegrationCard({ children, ...props }: ITcIntegrationCardProps) { return ( ); diff --git a/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.spec.tsx b/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.spec.tsx index a9a238a4..84d2e587 100644 --- a/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.spec.tsx +++ b/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.spec.tsx @@ -1,7 +1,8 @@ // TcAvailableIntegrations.test.js -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + import TcAvailableIntegrations from './TcAvailableIntegrations'; import { IntegrationPlatform } from '../../../utils/enums'; diff --git a/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.tsx b/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.tsx index 9d302bc7..a0c3489a 100644 --- a/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.tsx +++ b/src/components/communitySettings/communityIntegrations/TcAvailableIntegrations.tsx @@ -1,10 +1,11 @@ import React from 'react'; + import TcAvailableIntegrationsItem from './TcAvailableIntegrationsItem'; import { IntegrationPlatform } from '../../../utils/enums'; function TcAvailableIntegrations() { return ( -
      +
      {Object.values(IntegrationPlatform).map((platform, index) => ( -
      - -
      +
      + +
      } - className="max-w-full" - size="small" + className='max-w-full' + size='small' onClick={() => integratePlatform()} />
      @@ -50,8 +51,8 @@ function TcAvailableIntegrationsItem({ {disabled && ( diff --git a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.spec.tsx b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.spec.tsx index ad10a213..b6f4a591 100644 --- a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.spec.tsx +++ b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.spec.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; import TcCommunityIntegrations from './TcCommunityIntegrations'; diff --git a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.tsx b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.tsx index 7f5ee6e2..c6af38b2 100644 --- a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.tsx +++ b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrations.tsx @@ -1,14 +1,15 @@ import React, { useEffect, useState } from 'react'; -import TcConnectedPlatforms from './TcConnectedPlatforms'; + import TcAvailableIntegrations from './TcAvailableIntegrations'; +import TcConnectedPlatforms from './TcConnectedPlatforms'; +import Loading from '../../global/Loading'; import TcText from '../../shared/TcText'; +import { StorageService } from '../../../services/StorageService'; import useAppStore from '../../../store/useStore'; import { FetchedData, IDiscordModifiedCommunity, } from '../../../utils/interfaces'; -import { StorageService } from '../../../services/StorageService'; -import Loading from '../../global/Loading'; function TcCommunityIntegrations() { const { retrievePlatforms } = useAppStore(); @@ -49,17 +50,17 @@ function TcCommunityIntegrations() { return ( <> - -
      + +
      {fetchedPlatforms?.results.length > 0 ? ( -
      +
      {loading ? ( - + ) : ( <> +
      diff --git a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsConfirmDialog.tsx b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsConfirmDialog.tsx index f3b27f8c..fd565606 100644 --- a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsConfirmDialog.tsx +++ b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsConfirmDialog.tsx @@ -1,10 +1,11 @@ +import Router from 'next/router'; import React from 'react'; +import { AiOutlineClose } from 'react-icons/ai'; +import { RiTimeLine } from 'react-icons/ri'; + +import TcButton from '../../shared/TcButton'; import TcDialog from '../../shared/TcDialog'; import TcText from '../../shared/TcText'; -import TcButton from '../../shared/TcButton'; -import { RiTimeLine } from 'react-icons/ri'; -import { AiOutlineClose } from 'react-icons/ai'; -import Router from 'next/router'; interface ITcCommunityIntegrationsConfirmDialog { isOpen: boolean; @@ -33,26 +34,26 @@ function TcCommunityIntegrationsConfirmDialog({ }, }} > -
      +
      toggleDialog()} />
      -
      -
      - +
      +
      +
      - + -
      +
      handleCloseDialog()} />
      diff --git a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsDialog.tsx b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsDialog.tsx index 15d6fe9b..fb51a891 100644 --- a/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsDialog.tsx +++ b/src/components/communitySettings/communityIntegrations/TcCommunityIntegrationsDialog.tsx @@ -1,16 +1,17 @@ +import { useRouter } from 'next/router'; import React, { useContext, useEffect, useState } from 'react'; import { AiOutlineClose } from 'react-icons/ai'; -import TcDialog from '../../shared/TcDialog'; -import TcText from '../../shared/TcText'; + +import TcCommunityIntegrationsConfirmDialog from './TcCommunityIntegrationsConfirmDialog'; import TcPeriodRange from '../platform/TcPeriodRange'; -import TcButton from '../../shared/TcButton'; import TcPlatformChannelDialog from '../platform/TcPlatformChannelDialog'; -import { useRouter } from 'next/router'; -import useAppStore from '../../../store/useStore'; +import Loading from '../../global/Loading'; +import TcButton from '../../shared/TcButton'; +import TcDialog from '../../shared/TcDialog'; +import TcText from '../../shared/TcText'; import { ChannelContext } from '../../../context/ChannelContext'; import updateTrueIDs from '../../../helpers/PlatformHelper'; -import TcCommunityIntegrationsConfirmDialog from './TcCommunityIntegrationsConfirmDialog'; -import Loading from '../../global/Loading'; +import useAppStore from '../../../store/useStore'; function TcCommunityIntegrationsDialog() { const router = useRouter(); @@ -76,43 +77,41 @@ function TcCommunityIntegrationsDialog() { }} > {loading ? ( -
      - +
      +
      ) : ( <> {' '} -
      +
      setOpenDialog(false)} />
      -
      -
      +
      +
      setPlatfromAnalyzerDate(date)} />
      -
      +
      -
      +
      diff --git a/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.spec.tsx b/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.spec.tsx index 5a819c9d..e8d1d3c8 100644 --- a/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.spec.tsx +++ b/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + import TcConnectedPlatforms from './TcConnectedPlatforms'; // Mock the TcConnectedPlatformsItem component since it's imported and used in TcConnectedPlatforms @@ -11,7 +12,7 @@ jest.mock('./TcConnectedPlatformsItem', () => { platform: any; }) { return ( -
      +
      {/* Render the platform's name for testing purposes */} {platform.name}
      diff --git a/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.tsx b/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.tsx index 9002121b..d97532cc 100644 --- a/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.tsx +++ b/src/components/communitySettings/communityIntegrations/TcConnectedPlatforms.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import TcConnectedPlatformsItem from './TcConnectedPlatformsItem'; import { IPlatformProps } from '../../../utils/interfaces'; @@ -10,7 +11,7 @@ function TcConnectedPlatforms({ connectedPlatforms, }: IConnectedPlatformsProps) { return ( -
      +
      {connectedPlatforms?.map((platform: IPlatformProps, index: number) => ( ))} diff --git a/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.spec.tsx b/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.spec.tsx index 7e825980..9650210d 100644 --- a/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.spec.tsx +++ b/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + import TcConnectedPlatformsItem from './TcConnectedPlatformsItem'; describe('', () => { diff --git a/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.tsx b/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.tsx index 8a3fc5a2..c662ba4b 100644 --- a/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.tsx +++ b/src/components/communitySettings/communityIntegrations/TcConnectedPlatformsItem.tsx @@ -37,19 +37,20 @@ * */ -import React, { useState } from 'react'; -import TcText from '../../shared/TcText'; +import { ClickAwayListener, Tooltip } from '@mui/material'; import clsx from 'clsx'; -import TcAvatar from '../../shared/TcAvatar'; -import TcIntegrationCard from '../TcIntegrationCard'; import router from 'next/router'; -import { conf } from '../../../configs'; -import { IPlatformProps } from '../../../utils/interfaces'; +import React, { useState } from 'react'; +import { BsThreeDots } from 'react-icons/bs'; + import TcIntegrationIcon from './TcIntegrationIcon'; +import TcIntegrationCard from '../TcIntegrationCard'; +import TcAvatar from '../../shared/TcAvatar'; +import TcText from '../../shared/TcText'; +import { conf } from '../../../configs'; import { capitalizeFirstChar, truncateCenter } from '../../../helpers/helper'; import { IntegrationPlatform } from '../../../utils/enums'; -import { BsThreeDots } from 'react-icons/bs'; -import { ClickAwayListener, Tooltip } from '@mui/material'; +import { IPlatformProps } from '../../../utils/interfaces'; interface TcConnectedPlatformsItemProps { platform: IPlatformProps; @@ -68,9 +69,9 @@ function TcConnectedPlatformsItem({ platform }: TcConnectedPlatformsItemProps) { return ( <> -
      +
      router.push( `/community-settings/platform/?platformId=${platform.id}` @@ -78,29 +79,29 @@ function TcConnectedPlatformsItem({ platform }: TcConnectedPlatformsItemProps) { } />
      -
      -
      -
      +
      +
      +
      -
      +
      {platform && ( -
      +
      )} diff --git a/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.spec.tsx b/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.spec.tsx index 8764f139..6e5f47df 100644 --- a/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.spec.tsx +++ b/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcIntegrationIcon from './TcIntegrationIcon'; import { IntegrationPlatform } from '../../../utils/enums'; diff --git a/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.tsx b/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.tsx index 31cdac8f..c8ee2926 100644 --- a/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.tsx +++ b/src/components/communitySettings/communityIntegrations/TcIntegrationIcon.tsx @@ -20,13 +20,14 @@ */ import React from 'react'; +import { BiLogoDiscourse } from 'react-icons/bi'; import { BsDiscord, - BsTwitter, - BsTelegram, BsQuestionCircleFill, + BsTelegram, + BsTwitter, } from 'react-icons/bs'; -import { BiLogoDiscourse } from 'react-icons/bi'; + import { IntegrationPlatform } from '../../../utils/enums'; interface ITcIntegrationIconProps { diff --git a/src/components/communitySettings/platform/TcCommunityName.tsx b/src/components/communitySettings/platform/TcCommunityName.tsx index 3b6fc2a3..97e0afee 100644 --- a/src/components/communitySettings/platform/TcCommunityName.tsx +++ b/src/components/communitySettings/platform/TcCommunityName.tsx @@ -1,15 +1,16 @@ -import React from 'react'; -import TcText from '../../shared/TcText'; -import TcAvatar from '../../shared/TcAvatar'; import moment from 'moment'; import Image from 'next/image'; +import React from 'react'; +import { MdGroups } from 'react-icons/md'; + +import TcAvatar from '../../shared/TcAvatar'; +import TcText from '../../shared/TcText'; +import { conf } from '../../../configs'; +import { useToken } from '../../../context/TokenContext'; import { IDiscordModifiedCommunity, IPlatformProps, } from '../../../utils/interfaces'; -import { MdGroups } from 'react-icons/md'; -import { useToken } from '../../../context/TokenContext'; -import { conf } from '../../../configs'; interface TccommunityName { platform: IPlatformProps | null; @@ -35,10 +36,10 @@ function TcCommunityName({ platform }: TccommunityName) { return ( ); } @@ -47,25 +48,25 @@ function TcCommunityName({ platform }: TccommunityName) { }; return ( -
      +
      {community && community.avatarURL ? ( ) : ( - + {community ? renderPlatformAvatar(community) : } )} -
      - +
      +
      diff --git a/src/components/communitySettings/platform/TcDisconnectPlatform.tsx b/src/components/communitySettings/platform/TcDisconnectPlatform.tsx index 244da5f5..8038a92b 100644 --- a/src/components/communitySettings/platform/TcDisconnectPlatform.tsx +++ b/src/components/communitySettings/platform/TcDisconnectPlatform.tsx @@ -1,12 +1,13 @@ +import { useRouter } from 'next/router'; import React, { useState } from 'react'; -import TcButton from '../../shared/TcButton'; import { AiOutlineClose } from 'react-icons/ai'; + +import TcButton from '../../shared/TcButton'; import TcDialog from '../../shared/TcDialog'; import TcText from '../../shared/TcText'; -import { IPlatformProps } from '../../../utils/interfaces'; -import useAppStore from '../../../store/useStore'; -import { useRouter } from 'next/router'; import { useSnackbar } from '../../../context/SnackbarContext'; +import useAppStore from '../../../store/useStore'; +import { IPlatformProps } from '../../../utils/interfaces'; interface TcDisconnectPlatformProps { platform: IPlatformProps | null; @@ -33,8 +34,8 @@ function TcDisconnectPlatform({ platform }: TcDisconnectPlatformProps) { return ( <> setOpenDialog(true)} /> @@ -51,62 +52,64 @@ function TcDisconnectPlatform({ platform }: TcDisconnectPlatformProps) { }, }} > -
      +
      setOpenDialog(false)} />
      -
      -
      +
      +
      -
      -
      +
      +
      Importing activities and members will be stopped. Historical activities will be deleted. } - variant="body2" + variant='body2' /> handleDeletePlatform('hard')} />
      -
      +
      Importing activities and members will be stopped. Historical activities will not be affected. } - variant="body2" + variant='body2' /> handleDeletePlatform('soft')} />
      diff --git a/src/components/communitySettings/platform/TcPeriodRange.tsx b/src/components/communitySettings/platform/TcPeriodRange.tsx index b47bccd0..a0895bdd 100644 --- a/src/components/communitySettings/platform/TcPeriodRange.tsx +++ b/src/components/communitySettings/platform/TcPeriodRange.tsx @@ -1,7 +1,8 @@ +import clsx from 'clsx'; import React, { useEffect, useState } from 'react'; -import TcButtonGroup from '../../shared/TcButtonGroup'; + import TcButton from '../../shared/TcButton'; -import clsx from 'clsx'; +import TcButtonGroup from '../../shared/TcButtonGroup'; type PeriodValue = 'Last 35 days' | '1M' | '3M' | '6M' | '1Y'; diff --git a/src/components/communitySettings/platform/TcPlatform.tsx b/src/components/communitySettings/platform/TcPlatform.tsx index 86aa358b..1dabd9a8 100644 --- a/src/components/communitySettings/platform/TcPlatform.tsx +++ b/src/components/communitySettings/platform/TcPlatform.tsx @@ -1,18 +1,19 @@ +import { useRouter } from 'next/router'; import React, { useContext, useEffect, useState } from 'react'; + +import TcCommunityName from './TcCommunityName'; +import TcDisconnectPlatform from './TcDisconnectPlatform'; +import TcPlatformChannels from './TcPlatformChannels'; +import TcPlatformPeriod from './TcPlatformPeriod'; +import TcCommunityIntegrationsConfirmDialog from '../communityIntegrations/TcCommunityIntegrationsConfirmDialog'; +import SimpleBackdrop from '../../global/LoadingBackdrop'; import TcBoxContainer from '../../shared/TcBox/TcBoxContainer'; -import TcText from '../../shared/TcText'; import TcButton from '../../shared/TcButton'; -import TcPlatformPeriod from './TcPlatformPeriod'; -import TcPlatformChannels from './TcPlatformChannels'; -import { useRouter } from 'next/router'; -import useAppStore from '../../../store/useStore'; -import TcDisconnectPlatform from './TcDisconnectPlatform'; -import TcCommunityName from './TcCommunityName'; -import { IPlatformProps } from '../../../utils/interfaces'; +import TcText from '../../shared/TcText'; import { ChannelContext } from '../../../context/ChannelContext'; import updateTrueIDs from '../../../helpers/PlatformHelper'; -import SimpleBackdrop from '../../global/LoadingBackdrop'; -import TcCommunityIntegrationsConfirmDialog from '../communityIntegrations/TcCommunityIntegrationsConfirmDialog'; +import useAppStore from '../../../store/useStore'; +import { IPlatformProps } from '../../../utils/interfaces'; interface TcPlatformProps { platformName?: string; @@ -145,12 +146,12 @@ function TcPlatform({ platformName = 'Discord' }: TcPlatformProps) { return ( -
      -
      - +
      +
      +
      +
      - +
      @@ -161,10 +162,10 @@ function TcPlatform({ platformName = 'Discord' }: TcPlatformProps) { onDateChange={handleDateChange} /> -
      +
      diff --git a/src/components/communitySettings/platform/TcPlatformChannelDialog.tsx b/src/components/communitySettings/platform/TcPlatformChannelDialog.tsx index e705a215..697de11e 100644 --- a/src/components/communitySettings/platform/TcPlatformChannelDialog.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannelDialog.tsx @@ -1,11 +1,12 @@ import React, { useContext, useState } from 'react'; -import TcText from '../../shared/TcText'; -import TcButton from '../../shared/TcButton'; -import TcDialog from '../../shared/TcDialog'; import { AiOutlineClose } from 'react-icons/ai'; -import TcPlatformChannelDialogHeader from './TcPlatformChannelDialogHeader'; + import TcPlatformChannelDialogBody from './TcPlatformChannelDialogBody'; import TcPlatformChannelDialogFooter from './TcPlatformChannelDialogFooter'; +import TcPlatformChannelDialogHeader from './TcPlatformChannelDialogHeader'; +import TcButton from '../../shared/TcButton'; +import TcDialog from '../../shared/TcDialog'; +import TcText from '../../shared/TcText'; import { ChannelContext } from '../../../context/ChannelContext'; import { calculateSelectedChannelSize } from '../../../helpers/helper'; @@ -20,18 +21,18 @@ function TcPlatformChannelDialog() { return (
      -
      +
      setOpenDialog(true)} /> @@ -52,23 +53,23 @@ function TcPlatformChannelDialog() { }, }} > -
      - +
      + setOpenDialog(false)} />
      -
      +
      -
      +
      setOpenDialog(false)} /> diff --git a/src/components/communitySettings/platform/TcPlatformChannelDialogBody.tsx b/src/components/communitySettings/platform/TcPlatformChannelDialogBody.tsx index f4e5a677..723d00d6 100644 --- a/src/components/communitySettings/platform/TcPlatformChannelDialogBody.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannelDialogBody.tsx @@ -1,9 +1,10 @@ import React from 'react'; + import TcPlatformChannelList from './TcPlatformChannelList'; function TcPlatformChannelDialogBody() { return ( -
      +
      ); diff --git a/src/components/communitySettings/platform/TcPlatformChannelDialogFooter.tsx b/src/components/communitySettings/platform/TcPlatformChannelDialogFooter.tsx index 3d90dd1f..bf1ac8dd 100644 --- a/src/components/communitySettings/platform/TcPlatformChannelDialogFooter.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannelDialogFooter.tsx @@ -7,22 +7,22 @@ function TcPlatformChannelDialogFooter() {
      } + expandIcon={} > -

      +

      How to give access to the channel you want to import?

      -
      -
        +
        +
        1. Navigate to the channel you want to import on{' '} Discord diff --git a/src/components/communitySettings/platform/TcPlatformChannelDialogHeader.tsx b/src/components/communitySettings/platform/TcPlatformChannelDialogHeader.tsx index 05efdafe..8cd649a5 100644 --- a/src/components/communitySettings/platform/TcPlatformChannelDialogHeader.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannelDialogHeader.tsx @@ -1,14 +1,13 @@ import React from 'react'; + import TcText from '../../shared/TcText'; function TcPlatformChannelDialogHeader() { return ( -
          +
          ); diff --git a/src/components/communitySettings/platform/TcPlatformChannelList.tsx b/src/components/communitySettings/platform/TcPlatformChannelList.tsx index 13bd52e4..02bbc18a 100644 --- a/src/components/communitySettings/platform/TcPlatformChannelList.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannelList.tsx @@ -1,14 +1,15 @@ -import React, { useContext } from 'react'; import { FormControlLabel, FormGroup } from '@mui/material'; -import TcCheckbox from '../../shared/TcCheckbox'; -import TcText from '../../shared/TcText'; -import TcButton from '../../shared/TcButton'; +import clsx from 'clsx'; +import { useRouter } from 'next/router'; +import React, { useContext } from 'react'; +import { BiError } from 'react-icons/bi'; import { TbRefresh } from 'react-icons/tb'; + import Loading from '../../global/Loading'; +import TcButton from '../../shared/TcButton'; +import TcCheckbox from '../../shared/TcCheckbox'; +import TcText from '../../shared/TcText'; import { ChannelContext } from '../../../context/ChannelContext'; -import { useRouter } from 'next/router'; -import clsx from 'clsx'; -import { BiError } from 'react-icons/bi'; interface ITcPlatformChannelList { refreshTrigger: boolean; @@ -42,31 +43,31 @@ function TcPlatformChannelList({ }; if (loading) { - return ; + return ; } if (channels.length === 0) { return ( -
          +
          ); } return ( -
          +
          {refreshTrigger ? ( } sx={{ maxWidth: '10rem' }} - variant="outlined" + variant='outlined' onClick={handleRefresh} - text={'Refresh List'} + text='Refresh List' /> ) : ( '' @@ -79,8 +80,8 @@ function TcPlatformChannelList({ {channels && channels?.map((channel, index) => (
          - -
          + +
          } - label="All Channels" + label='All Channels' /> - + {channel.subChannels.map((subChannel, index) => (
          {!subChannel.canReadMessageHistoryAndViewChannel ? ( -
          - +
          +
          ) : ( diff --git a/src/components/communitySettings/platform/TcPlatformChannels.tsx b/src/components/communitySettings/platform/TcPlatformChannels.tsx index 94af1031..a8e2fbaa 100644 --- a/src/components/communitySettings/platform/TcPlatformChannels.tsx +++ b/src/components/communitySettings/platform/TcPlatformChannels.tsx @@ -1,16 +1,17 @@ import React from 'react'; import { FaHashtag } from 'react-icons/fa6'; -import TcAvatar from '../../shared/TcAvatar'; + import TcPlatformChannelDialog from './TcPlatformChannelDialog'; +import TcAvatar from '../../shared/TcAvatar'; function TcPlatformChannels() { return (
          -
          - - +
          + + -
          +
          diff --git a/src/components/communitySettings/platform/TcPlatformPeriod.tsx b/src/components/communitySettings/platform/TcPlatformPeriod.tsx index a92b0dc4..bc151059 100644 --- a/src/components/communitySettings/platform/TcPlatformPeriod.tsx +++ b/src/components/communitySettings/platform/TcPlatformPeriod.tsx @@ -1,11 +1,12 @@ +import moment from 'moment'; import React from 'react'; -import TcAvatar from '../../shared/TcAvatar'; -import { MdOutlineCalendarToday } from 'react-icons/md'; import { HiOutlineExclamationCircle } from 'react-icons/hi'; -import TcText from '../../shared/TcText'; +import { MdOutlineCalendarToday } from 'react-icons/md'; + import TcPeriodRange from './TcPeriodRange'; +import TcAvatar from '../../shared/TcAvatar'; +import TcText from '../../shared/TcText'; import { IPlatformProps } from '../../../utils/interfaces'; -import moment from 'moment'; interface ITcPlatformPeriodProps { platform: IPlatformProps | null; @@ -19,30 +20,28 @@ function TcPlatformPeriod({ onDateChange, platform }: ITcPlatformPeriodProps) { return (
          -
          - - +
          + + -
          +
          -
          +
          { @@ -60,9 +61,8 @@ function TcActiveCommunity() { 'community' )?.id; if (storedCommunityId) { - const fullCommunityData = await retrieveCommunityById( - storedCommunityId - ); + const fullCommunityData = + await retrieveCommunityById(storedCommunityId); setCommunity(fullCommunityData); StorageService.writeLocalStorage('community', fullCommunityData); @@ -107,10 +107,10 @@ function TcActiveCommunity() { return ( ); } @@ -120,19 +120,19 @@ function TcActiveCommunity() { if (loading) { return ( -
          - +
          +
          ); } return ( -
          -
          +
          +
          {community && community.avatarURL ? ( - + ) : ( - + {community ? ( renderPlatformAvatar(community) ) : ( @@ -141,13 +141,13 @@ function TcActiveCommunity() { )} {loading ? ( - + ) : ( { setOpenDialog(true); @@ -81,36 +82,36 @@ function TcConfirmDeleteCommunity({ }, }} > -
          +
          setOpenDialog(false)} />
          {activeStep === 1 ? ( -
          -
          -
          - +
          +
          +
          +
          - + If you don't read this, unexpected bad things will happen!{' '} Once the community account is deleted, there is{' '} @@ -120,24 +121,24 @@ function TcConfirmDeleteCommunity({ } /> -
          +
          setOpenDialog(false)} /> setActiveStep(2)} />
          ) : ( -
          +
          To confirm that you want to delete the community, please type{' '} @@ -145,25 +146,25 @@ function TcConfirmDeleteCommunity({ } /> -
          +
          -
          +
          setOpenDialog(false)} /> diff --git a/src/components/communitySettings/switchCommunity/TcSwitchCommunity.tsx b/src/components/communitySettings/switchCommunity/TcSwitchCommunity.tsx index bd1a1701..4c7f3f05 100644 --- a/src/components/communitySettings/switchCommunity/TcSwitchCommunity.tsx +++ b/src/components/communitySettings/switchCommunity/TcSwitchCommunity.tsx @@ -1,17 +1,18 @@ +import router from 'next/router'; import React from 'react'; -import TcButton from '../../shared/TcButton'; + import TcActiveCommunity from './TcActiveCommunity'; -import router from 'next/router'; +import TcButton from '../../shared/TcButton'; import TcText from '../../shared/TcText'; function TcSwitchCommunity() { return ( -
          -
          - +
          +
          + router.push('/centric/select-community')} /> diff --git a/src/components/global/.CustomTab.tsx.swp b/src/components/global/.CustomTab.tsx.swp deleted file mode 100644 index 1c19527f..00000000 Binary files a/src/components/global/.CustomTab.tsx.swp and /dev/null differ diff --git a/src/components/global/AmplitudeAnalytics.tsx b/src/components/global/AmplitudeAnalytics.tsx index 37a59b61..f71d1897 100644 --- a/src/components/global/AmplitudeAnalytics.tsx +++ b/src/components/global/AmplitudeAnalytics.tsx @@ -1,5 +1,6 @@ -import { useEffect } from 'react'; import * as amplitude from '@amplitude/analytics-browser'; +import { useEffect } from 'react'; + import { conf } from '../../configs'; const AmplitudeAnalytics = () => { diff --git a/src/components/global/CustomButton.tsx b/src/components/global/CustomButton.tsx deleted file mode 100644 index 68b6361a..00000000 --- a/src/components/global/CustomButton.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Button, ButtonProps } from '@mui/material'; -import clsx from 'clsx'; - -interface IButtonProps extends ButtonProps { - classes: string; - label: string; -} -export default function CustomButton({ - classes, - label, - ...props -}: IButtonProps) { - return ( - <> - - - ); -} - -CustomButton.defaultProps = { - disabled: false, -}; diff --git a/src/components/global/CustomTab.tsx b/src/components/global/CustomTab.tsx index 99af64eb..6d836c76 100644 --- a/src/components/global/CustomTab.tsx +++ b/src/components/global/CustomTab.tsx @@ -1,7 +1,6 @@ -import { ReactElement, SyntheticEvent, useState } from 'react'; -import Tab from '@mui/material/Tab'; import { TabContext, TabList, TabPanel } from '@mui/lab'; -import { Box } from '@mui/material'; +import Tab from '@mui/material/Tab'; +import { ReactElement, SyntheticEvent } from 'react'; interface ICustomTab { activeTab: string; @@ -23,7 +22,7 @@ function CustomTab({ -
          {image}
          -

          {title}

          -

          {description}

          - +
          {image}
          +

          {title}

          +

          {description}

          + { router.push('/community-settings'); }} + className='mx-auto py-2 md:w-1/5' />
          ); diff --git a/src/components/global/FilterByChannels.tsx b/src/components/global/FilterByChannels.tsx index 5aacda02..6ba3eb85 100644 --- a/src/components/global/FilterByChannels.tsx +++ b/src/components/global/FilterByChannels.tsx @@ -1,10 +1,11 @@ import { Popover } from '@mui/material'; import React, { useContext } from 'react'; -import { FaHashtag } from 'react-icons/fa'; -import CustomButton from './CustomButton'; import { BiError } from 'react-icons/bi'; -import { ChannelContext } from '../../context/ChannelContext'; +import { FaHashtag } from 'react-icons/fa'; + import TcPlatformChannelList from '../communitySettings/platform/TcPlatformChannelList'; +import TcButton from '../shared/TcButton'; +import { ChannelContext } from '../../context/ChannelContext'; import { calculateSelectedChannelSize } from '../../helpers/helper'; type IFilterByChannelsProps = { @@ -36,12 +37,12 @@ const FilterByChannels = ({ const id = open ? 'simple-popover' : undefined; return ( -
          - +
          + @@ -62,31 +63,32 @@ const FilterByChannels = ({ style: { width: '32rem' }, }} > -
          -

          +

          +

          Select channels to view activity

          -
          +
          -
          - +
          + At least one channel needs to be selected. Please select channel.
          -
          - + { if (handleFetchHeatmapByChannels) { handleFetchHeatmapByChannels(); } setAnchorEl(null); }} - disabled={selectedCount === 0} - classes="bg-secondary text-white mx-auto" />
          diff --git a/src/components/global/FilterPopover/FilterRolesPopover.tsx b/src/components/global/FilterPopover/FilterRolesPopover.tsx index a7cf1515..25043b25 100644 --- a/src/components/global/FilterPopover/FilterRolesPopover.tsx +++ b/src/components/global/FilterPopover/FilterRolesPopover.tsx @@ -1,28 +1,29 @@ +import { + Autocomplete, + Chip, + FormControl, + FormControlLabel, + ListItem, + Radio, + RadioGroup, +} from '@mui/material'; import React, { useEffect, useRef, useState } from 'react'; import { - MdOutlineKeyboardArrowUp, MdOutlineKeyboardArrowDown, + MdOutlineKeyboardArrowUp, } from 'react-icons/md'; + +import Loading from '../Loading'; +import { IRolesPayload } from '../../pages/statistics/memberBreakdowns/CustomTable'; import TcButton from '../../shared/TcButton'; +import TcCheckbox from '../../shared/TcCheckbox'; +import TcInput from '../../shared/TcInput'; import TcPopover from '../../shared/TcPopover'; -import { - FormControl, - RadioGroup, - FormControlLabel, - Radio, - ListItem, - Chip, - Autocomplete, -} from '@mui/material'; import TcText from '../../shared/TcText'; -import TcInput from '../../shared/TcInput'; -import useAppStore from '../../../store/useStore'; import { useToken } from '../../../context/TokenContext'; import { debounce, hexToRGBA, isDarkColor } from '../../../helpers/helper'; +import useAppStore from '../../../store/useStore'; import { FetchedData, IRoles } from '../../../utils/interfaces'; -import TcCheckbox from '../../shared/TcCheckbox'; -import Loading from '../Loading'; -import { IRolesPayload } from '../../pages/statistics/memberBreakdowns/CustomTable'; function createPayload( includeExclude: 'include' | 'exclude', @@ -238,8 +239,8 @@ function FilterRolesPopover({ handleSelectedRoles }: IFilterRolesPopover) { return (
          @@ -257,26 +258,26 @@ function FilterRolesPopover({ handleSelectedRoles }: IFilterRolesPopover) { anchorEl={anchorEl} sx={{ maxWidth: '340px' }} content={ -
          +
          {selectedRoles.length > 0 && ( - + } - label={} - className="w-1/2" + label={} + className='w-1/2' /> } - label={} + label={} /> @@ -284,7 +285,7 @@ function FilterRolesPopover({ handleSelectedRoles }: IFilterRolesPopover) { value.map((option, index) => ( @@ -347,21 +348,21 @@ function FilterRolesPopover({ handleSelectedRoles }: IFilterRolesPopover) {
          {fetchedRoles && fetchedRoles.results.length > 0 ? ( <> - + {fetchedRoles?.results?.map((role: IRoles) => ( selectedRole.id === role.id )} @@ -371,9 +372,9 @@ function FilterRolesPopover({ handleSelectedRoles }: IFilterRolesPopover) { label={ role ? ( ))} ) : ( - + )} - {loading ? : ''} + {loading ? : ''}
          } diff --git a/src/components/global/Link.tsx b/src/components/global/Link.tsx index eaff6fc8..4c1d6ef9 100644 --- a/src/components/global/Link.tsx +++ b/src/components/global/Link.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { Link as MuiLink, LinkProps as MuiLinkProps } from '@mui/material'; +import React from 'react'; type CustomLinkProps = MuiLinkProps & { to: string; @@ -7,7 +7,7 @@ type CustomLinkProps = MuiLinkProps & { const Link: React.FC = ({ to, children, ...props }) => { return ( - + {children} ); diff --git a/src/components/global/Loading.tsx b/src/components/global/Loading.tsx index 311dd147..86fa66eb 100644 --- a/src/components/global/Loading.tsx +++ b/src/components/global/Loading.tsx @@ -15,7 +15,7 @@ function Loading({ height = '10rem', size = 40 }: LoadingProps) { height, }} > - + ); } diff --git a/src/components/global/LoadingBackdrop.tsx b/src/components/global/LoadingBackdrop.tsx index 80d5bb59..8cd8d313 100644 --- a/src/components/global/LoadingBackdrop.tsx +++ b/src/components/global/LoadingBackdrop.tsx @@ -11,7 +11,7 @@ export default function SimpleBackdrop() { top: '-4rem', }} > - + ); } diff --git a/src/components/global/NetworkGraph.tsx b/src/components/global/NetworkGraph.tsx index fd675042..aff076bf 100644 --- a/src/components/global/NetworkGraph.tsx +++ b/src/components/global/NetworkGraph.tsx @@ -1,7 +1,7 @@ -import React from 'react'; import Highcharts from 'highcharts'; -import HighchartsReact from 'highcharts-react-official'; import HighchartsNetworkgraph from 'highcharts/modules/networkgraph'; +import HighchartsReact from 'highcharts-react-official'; +import React from 'react'; // Initialize the Highcharts networkgraph module if (typeof Highcharts === 'object') { diff --git a/src/components/global/RangeSelect.tsx b/src/components/global/RangeSelect.tsx index 321660b5..c75c4816 100644 --- a/src/components/global/RangeSelect.tsx +++ b/src/components/global/RangeSelect.tsx @@ -14,9 +14,9 @@ type optionItem = { const RangeSelect = ({ options, icon, onClick, active }: Props) => { return ( <> -
          -
            -
            {icon}
            +
            +
              +
              {icon}
              {options.length > 0 ? options.map((el) => (
            • { key={el.value} className={ active === el.value - ? 'py-1 px-2 whitespace-nowrap md:px-1.5 text-sm rounded-md bg-white text-light-gray cursor-pointer hover:bg-lite' - : 'py-1 px-3 whitespace-nowrap md:px-1.5 text-sm rounded-md cursor-pointer text-light-gray hover:bg-lite' + ? 'text-light-gray cursor-pointer whitespace-nowrap rounded-md bg-white py-1 px-2 text-sm hover:bg-lite md:px-1.5' + : 'text-light-gray cursor-pointer whitespace-nowrap rounded-md py-1 px-3 text-sm hover:bg-lite md:px-1.5' } >
              {el.title}
              diff --git a/src/components/global/SEO.tsx b/src/components/global/SEO.tsx index 70e38cf8..0585db05 100644 --- a/src/components/global/SEO.tsx +++ b/src/components/global/SEO.tsx @@ -14,11 +14,11 @@ const SEO: FC = ({ }): JSX.Element => ( - + {titleTemplate} | {title} - + ); diff --git a/src/components/global/TcPermissionHints/TcPermissionHints.spec.tsx b/src/components/global/TcPermissionHints/TcPermissionHints.spec.tsx index 13710ad1..3f10b398 100644 --- a/src/components/global/TcPermissionHints/TcPermissionHints.spec.tsx +++ b/src/components/global/TcPermissionHints/TcPermissionHints.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; +import React from 'react'; + import PermissionHints from './TcPermissionHints'; describe('PermissionHints Component', () => { test('renders PermissionHints component', () => { diff --git a/src/components/global/TcPermissionHints/TcPermissionHints.tsx b/src/components/global/TcPermissionHints/TcPermissionHints.tsx index 10d023d7..c342aebf 100644 --- a/src/components/global/TcPermissionHints/TcPermissionHints.tsx +++ b/src/components/global/TcPermissionHints/TcPermissionHints.tsx @@ -1,7 +1,8 @@ +import clsx from 'clsx'; import React, { useState } from 'react'; -import TcButtonGroup from '../../shared/TcButtonGroup'; + import TcButton from '../../shared/TcButton'; -import clsx from 'clsx'; +import TcButtonGroup from '../../shared/TcButtonGroup'; import TcText from '../../shared/TcText'; const permissionCategories = [ @@ -23,57 +24,57 @@ function PermissionHints() { switch (category) { case 'Access Settings': return ( -
              +
              -
                +
                1. -
                    +
                    • - +
                    • - +
                -
                  +
                  1. -
                      +
                      • - +
                      • - +
                      • - +
                      • - +
                      • - +
                      • - +
                      @@ -83,12 +84,12 @@ function PermissionHints() { ); case 'Server Level': return ( -
                      +
                      -
                        +
                        1. } - variant="body2" + variant='body2' />
                        2. @@ -108,7 +109,7 @@ function PermissionHints() { the middle of the screen check Advanced permissions } - variant="body2" + variant='body2' />
                        3. @@ -120,20 +121,20 @@ function PermissionHints() { [✓] } - variant="body2" + variant='body2' /> -
                            +
                            @@ -147,18 +148,18 @@ function PermissionHints() { you } - variant="body2" + variant='body2' />
                      ); case 'Category Level': return ( -
                      +
                      -
                        +
                        1. } - variant="body2" + variant='body2' />
                        2. @@ -178,7 +179,7 @@ function PermissionHints() { the middle of the screen check Advanced permissions } - variant="body2" + variant='body2' />
                        3. @@ -190,20 +191,20 @@ function PermissionHints() { [✓] } - variant="body2" + variant='body2' /> -
                            +
                            @@ -217,18 +218,18 @@ function PermissionHints() { you } - variant="body2" + variant='body2' />
                      ); case 'Channel Level': return ( -
                      +
                      -
                        +
                        1. } - variant="body2" + variant='body2' />
                        2. @@ -248,7 +249,7 @@ function PermissionHints() { the middle of the screen check Advanced permissions } - variant="body2" + variant='body2' />
                        3. @@ -260,20 +261,20 @@ function PermissionHints() { [✓] } - variant="body2" + variant='body2' /> -
                            +
                            @@ -287,7 +288,7 @@ function PermissionHints() { you } - variant="body2" + variant='body2' />
                      ); @@ -298,7 +299,7 @@ function PermissionHints() { return (
                      - + {permissionCategories.map((category) => ( ))} -
                      {getDescription(activeCategory)}
                      +
                      {getDescription(activeCategory)}
                      ); } diff --git a/src/components/global/ZonePicker.tsx b/src/components/global/ZonePicker.tsx index 250edc9c..69b9d6c0 100644 --- a/src/components/global/ZonePicker.tsx +++ b/src/components/global/ZonePicker.tsx @@ -1,9 +1,8 @@ import { Popover, TextField } from '@mui/material'; +import moment from 'moment'; +import momentTZ from 'moment-timezone'; import React, { useState } from 'react'; import { GoGlobe } from 'react-icons/go'; - -import momentTZ from 'moment-timezone'; -import moment from 'moment'; import 'moment-timezone'; // let defaultTimeZone = momentTZ.tz.guess(); @@ -44,12 +43,12 @@ const ZonePicker = ({ selectedZone, handleSelectedZone }: IProps) => { }; return ( -
                      - +
                      + @@ -70,24 +69,24 @@ const ZonePicker = ({ selectedZone, handleSelectedZone }: IProps) => { style: { width: '26rem' }, }} > -
                      -
                      +
                      +
                      -
                        +
                          {zones.length > 0 ? ( zones.map((el) => (
                        • ( handleSelectedZone(el), setAnchorEl(null), @@ -95,8 +94,8 @@ const ZonePicker = ({ selectedZone, handleSelectedZone }: IProps) => { )} >
                          {el}
                          -
                          -
                          +
                          +
                          {moment.tz(moment(), el).format('z,Z')}
                          {moment.tz(moment(), el).format('H a')}
                          @@ -104,7 +103,7 @@ const ZonePicker = ({ selectedZone, handleSelectedZone }: IProps) => {
                        • )) ) : ( -
                          +
                          Not founded
                          )} diff --git a/src/components/layouts/Sidebar.tsx b/src/components/layouts/Sidebar.tsx index 64cfeffa..60b806d8 100644 --- a/src/components/layouts/Sidebar.tsx +++ b/src/components/layouts/Sidebar.tsx @@ -1,5 +1,5 @@ -import React, { useEffect, useState } from 'react'; import Image from 'next/image'; +import React, { useEffect, useState } from 'react'; type items = { name: string; @@ -7,18 +7,17 @@ type items = { icon: any; }; -import { conf } from '../../configs/index'; +import { faHeartPulse, faUserGroup } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; - -import { faUserGroup, faHeartPulse } from '@fortawesome/free-solid-svg-icons'; -import { MdOutlineAnnouncement } from 'react-icons/md'; - -import { useRouter } from 'next/router'; import Link from 'next/link'; +import { useRouter } from 'next/router'; import { FiSettings } from 'react-icons/fi'; -import { ICommunityDiscordPlatfromProps } from '../../utils/interfaces'; -import { useToken } from '../../context/TokenContext'; +import { MdOutlineAnnouncement } from 'react-icons/md'; + import TcText from '../shared/TcText'; +import { conf } from '../../configs/index'; +import { useToken } from '../../context/TokenContext'; +import { ICommunityDiscordPlatfromProps } from '../../utils/interfaces'; const Sidebar = () => { const router = useRouter(); @@ -82,30 +81,30 @@ const Sidebar = () => { ]; const menuItem = menuItems.map((el) => ( -
                        • +
                        • {el.icon}
                          -

                          {el.name}

                          +

                          {el.name}

                        • )); return ( -
+
{columns.map((column, columnIndex) => ( @@ -266,8 +266,8 @@ const CustomTable: React.FC = ({ <> ); } if (props.variant === 'outlined') { return ( ); } diff --git a/src/components/shared/TcCard.spec.tsx b/src/components/shared/TcCard.spec.tsx index b1762603..5f9a47a4 100644 --- a/src/components/shared/TcCard.spec.tsx +++ b/src/components/shared/TcCard.spec.tsx @@ -1,7 +1,8 @@ -import React from 'react'; +import { CardContent, Typography } from '@mui/material'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcCard from './TcCard'; -import { Typography, CardContent } from '@mui/material'; describe('', () => { // Test 1: Check if the component renders correctly diff --git a/src/components/shared/TcCheckbox.spec.tsx b/src/components/shared/TcCheckbox.spec.tsx index d57d6d30..b75b9d71 100644 --- a/src/components/shared/TcCheckbox.spec.tsx +++ b/src/components/shared/TcCheckbox.spec.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; // For the "toBeInTheDocument" matcher and other extended matchers import TcCheckbox from './TcCheckbox'; diff --git a/src/components/shared/TcCheckbox.tsx b/src/components/shared/TcCheckbox.tsx index 88f26005..16d7a639 100644 --- a/src/components/shared/TcCheckbox.tsx +++ b/src/components/shared/TcCheckbox.tsx @@ -27,10 +27,10 @@ * @returns {JSX.Element} Rendered Checkbox component. */ -import React from 'react'; import Checkbox, { CheckboxProps } from '@mui/material/Checkbox'; +import React from 'react'; -interface ITcCheckboxProps extends CheckboxProps {} +type ITcCheckboxProps = CheckboxProps; function TcCheckbox({ ...props }: ITcCheckboxProps) { return ; diff --git a/src/components/shared/TcCollapse.spec.tsx b/src/components/shared/TcCollapse.spec.tsx index 1444bd10..3983ccae 100644 --- a/src/components/shared/TcCollapse.spec.tsx +++ b/src/components/shared/TcCollapse.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcCollapse from './TcCollapse'; // Replace with the correct import path describe('TcCollapse Component', () => { diff --git a/src/components/shared/TcCollapse.tsx b/src/components/shared/TcCollapse.tsx index 15778bd5..0d369823 100644 --- a/src/components/shared/TcCollapse.tsx +++ b/src/components/shared/TcCollapse.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import Collapse, { CollapseProps } from '@mui/material/Collapse'; +import React from 'react'; /** * Custom wrapper component for MUI's Collapse component. diff --git a/src/components/shared/TcDatePickerPopover.tsx b/src/components/shared/TcDatePickerPopover.tsx index 6e00729a..c5d190e7 100644 --- a/src/components/shared/TcDatePickerPopover.tsx +++ b/src/components/shared/TcDatePickerPopover.tsx @@ -1,8 +1,9 @@ -import React from 'react'; import Popover from '@mui/material/Popover'; -import { StaticDatePicker } from '@mui/x-date-pickers/StaticDatePicker'; -import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { StaticDatePicker } from '@mui/x-date-pickers/StaticDatePicker'; +import React from 'react'; + import TcButton from './TcButton'; interface ITcDatePickerPopoverProps { @@ -34,18 +35,18 @@ function TcDatePickerPopover({ > -
+
diff --git a/src/components/shared/TcDialog/TcDialog.spec.tsx b/src/components/shared/TcDialog/TcDialog.spec.tsx index d432f10a..b6197edf 100644 --- a/src/components/shared/TcDialog/TcDialog.spec.tsx +++ b/src/components/shared/TcDialog/TcDialog.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcDialog from './TcDialog'; describe('TcDialog Component', () => { diff --git a/src/components/shared/TcDialog/TcDialog.tsx b/src/components/shared/TcDialog/TcDialog.tsx index a44a9d85..ac840ee0 100644 --- a/src/components/shared/TcDialog/TcDialog.tsx +++ b/src/components/shared/TcDialog/TcDialog.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { Dialog, DialogProps } from '@mui/material'; +import React from 'react'; /** * `TcDialog` Component diff --git a/src/components/shared/TcIconWithTooltip.spec.tsx b/src/components/shared/TcIconWithTooltip.spec.tsx index cf0f9705..bb74c0f5 100644 --- a/src/components/shared/TcIconWithTooltip.spec.tsx +++ b/src/components/shared/TcIconWithTooltip.spec.tsx @@ -1,27 +1,28 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcIconWithTooltip from './TcIconWithTooltip'; describe('', () => { // Test 1: Check if the component renders correctly it('renders without crashing', () => { - render(); + render(); }); // Test 2: Check if the default icon (SVG) is rendered if none is provided it('renders the default SVG icon if none is provided', () => { - render(); + render(); const svgIcon = screen.getByTestId('icon-svg'); // Make sure you add this test-id to your SVG in the component expect(svgIcon).toBeInTheDocument(); }); // Test 3: Check if a custom icon is rendered when provided it('renders a custom icon (SVG) when provided', () => { - const customIcon = ; + const customIcon = ; render( ); const renderedIcon = screen.getByTestId('custom-icon'); diff --git a/src/components/shared/TcIconWithTooltip.tsx b/src/components/shared/TcIconWithTooltip.tsx index be6d2e27..0436a7b1 100644 --- a/src/components/shared/TcIconWithTooltip.tsx +++ b/src/components/shared/TcIconWithTooltip.tsx @@ -26,7 +26,7 @@ interface ITcIconWithTooltip { function TcIconWithTooltip({ iconComponent, tooltipText }: ITcIconWithTooltip) { return ( - +
{iconComponent}
); @@ -34,7 +34,7 @@ function TcIconWithTooltip({ iconComponent, tooltipText }: ITcIconWithTooltip) { TcIconWithTooltip.defaultProps = { iconComponent: ( - + ), }; diff --git a/src/components/shared/TcInput.spec.tsx b/src/components/shared/TcInput.spec.tsx index 8daef671..f74da766 100644 --- a/src/components/shared/TcInput.spec.tsx +++ b/src/components/shared/TcInput.spec.tsx @@ -1,8 +1,9 @@ // TcInput.test.tsx -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; // For the "toBeInTheDocument" matcher + import TcInput from './TcInput'; // Adjust the path as needed describe('TcInput Component', () => { diff --git a/src/components/shared/TcInput.tsx b/src/components/shared/TcInput.tsx index 3e7b8cd4..ad509446 100644 --- a/src/components/shared/TcInput.tsx +++ b/src/components/shared/TcInput.tsx @@ -1,7 +1,7 @@ import { - StandardTextFieldProps, FilledTextFieldProps, OutlinedTextFieldProps, + StandardTextFieldProps, TextField, } from '@mui/material'; diff --git a/src/components/shared/TcLink.spec.tsx b/src/components/shared/TcLink.spec.tsx index 80da82ef..608a9e0f 100644 --- a/src/components/shared/TcLink.spec.tsx +++ b/src/components/shared/TcLink.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcLink from './TcLink'; describe('TcLink component', () => { @@ -7,7 +8,7 @@ describe('TcLink component', () => { const defaultText = 'Title Test'; //arrange - const { getByText } = render({defaultText}); + const { getByText } = render({defaultText}); //assert expect(getByText(defaultText)).toBeInTheDocument(); diff --git a/src/components/shared/TcLink.tsx b/src/components/shared/TcLink.tsx index c7b2d7a3..070b835d 100644 --- a/src/components/shared/TcLink.tsx +++ b/src/components/shared/TcLink.tsx @@ -18,8 +18,8 @@ * Visit Example */ -import React from 'react'; import { Link, LinkProps as MuiLinkProps } from '@mui/material'; +import React from 'react'; interface CustomLinkProps extends MuiLinkProps { to?: string; @@ -27,7 +27,7 @@ interface CustomLinkProps extends MuiLinkProps { function TcLink({ children, to, ...props }: CustomLinkProps) { return ( - + {children} ); diff --git a/src/components/shared/TcPagination/TcPagination.spec.tsx b/src/components/shared/TcPagination/TcPagination.spec.tsx index 772ec1be..685fdbe2 100644 --- a/src/components/shared/TcPagination/TcPagination.spec.tsx +++ b/src/components/shared/TcPagination/TcPagination.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent } from '@testing-library/react'; + import TcPagination from './TcPagination'; describe('TcPagination', () => { diff --git a/src/components/shared/TcPagination/TcPagination.tsx b/src/components/shared/TcPagination/TcPagination.tsx index 8a95a1d2..a10c1b09 100644 --- a/src/components/shared/TcPagination/TcPagination.tsx +++ b/src/components/shared/TcPagination/TcPagination.tsx @@ -47,12 +47,12 @@ function TcPagination({ return ( handleChangePage(page)} {...props} - renderItem={(item) => } + renderItem={(item) => } /> ); } diff --git a/src/components/shared/TcPopover/TcPopover.spec.tsx b/src/components/shared/TcPopover/TcPopover.spec.tsx index 1e90033e..bc425e32 100644 --- a/src/components/shared/TcPopover/TcPopover.spec.tsx +++ b/src/components/shared/TcPopover/TcPopover.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + import TcPopover from './TcPopover'; describe('TcPopover', () => { diff --git a/src/components/shared/TcPopover/TcPopover.tsx b/src/components/shared/TcPopover/TcPopover.tsx index ea3c93b3..6d067115 100644 --- a/src/components/shared/TcPopover/TcPopover.tsx +++ b/src/components/shared/TcPopover/TcPopover.tsx @@ -19,8 +19,8 @@ * /> */ -import React from 'react'; import { Popover, PopoverProps } from '@mui/material'; +import React from 'react'; interface TcPopoverProps extends PopoverProps { open: boolean; diff --git a/src/components/shared/TcSelect/TcSelect.tsx b/src/components/shared/TcSelect/TcSelect.tsx index 124904ca..90ff5995 100644 --- a/src/components/shared/TcSelect/TcSelect.tsx +++ b/src/components/shared/TcSelect/TcSelect.tsx @@ -1,6 +1,7 @@ import { MenuItem, Select, SelectProps } from '@mui/material'; import React, { ReactElement } from 'react'; import { IconType } from 'react-icons'; + import TcText from '../TcText'; /** @@ -45,7 +46,7 @@ function TcSelect({ value={option.value} disabled={option.disabled} > -
+
{option.icon && React.cloneElement(option.icon)}
diff --git a/src/components/shared/TcSelect/TsSelect.spec.tsx b/src/components/shared/TcSelect/TsSelect.spec.tsx index 5313e833..c3a35a1e 100644 --- a/src/components/shared/TcSelect/TsSelect.spec.tsx +++ b/src/components/shared/TcSelect/TsSelect.spec.tsx @@ -1,6 +1,7 @@ +import { fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; + import TcSelect from './TcSelect'; describe('TcSelect Component', () => { diff --git a/src/components/shared/TcSwitch.spec.tsx b/src/components/shared/TcSwitch.spec.tsx index 3988c15c..e23ac3c9 100644 --- a/src/components/shared/TcSwitch.spec.tsx +++ b/src/components/shared/TcSwitch.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent } from '@testing-library/react'; + import TcSwitch from './TcSwitch'; describe('TcSwitch', () => { diff --git a/src/components/shared/TcSwitch.tsx b/src/components/shared/TcSwitch.tsx index 6d980173..3e700700 100644 --- a/src/components/shared/TcSwitch.tsx +++ b/src/components/shared/TcSwitch.tsx @@ -1,7 +1,7 @@ import { Switch, SwitchProps } from '@mui/material'; import React from 'react'; -interface ITcSwitchProps extends SwitchProps {} +type ITcSwitchProps = SwitchProps; /** * `TcSwitch` Component diff --git a/src/components/shared/TcTableContainer/TcTableBody.spec.tsx b/src/components/shared/TcTableContainer/TcTableBody.spec.tsx index 2e8d1bb4..e2ad8b94 100644 --- a/src/components/shared/TcTableContainer/TcTableBody.spec.tsx +++ b/src/components/shared/TcTableContainer/TcTableBody.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcTableBody from './TcTableBody'; describe('TcTableBody', () => { diff --git a/src/components/shared/TcTableContainer/TcTableBody.tsx b/src/components/shared/TcTableContainer/TcTableBody.tsx index 67b08449..832209ae 100644 --- a/src/components/shared/TcTableContainer/TcTableBody.tsx +++ b/src/components/shared/TcTableContainer/TcTableBody.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { TableBody, TableBodyProps } from '@mui/material'; +import React from 'react'; + import TcTableRow from './TcTableRow'; interface ITcTableBodyProps extends TableBodyProps { @@ -25,7 +26,7 @@ function TcTableBody({ rowItems, ...props }: ITcTableBodyProps) { diff --git a/src/components/shared/TcTableContainer/TcTableCell.spec.tsx b/src/components/shared/TcTableContainer/TcTableCell.spec.tsx index a605d4a4..09340705 100644 --- a/src/components/shared/TcTableContainer/TcTableCell.spec.tsx +++ b/src/components/shared/TcTableContainer/TcTableCell.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcTableCell from './TcTableCell'; describe('TcTableCell', () => { diff --git a/src/components/shared/TcTableContainer/TcTableCell.tsx b/src/components/shared/TcTableContainer/TcTableCell.tsx index 0717b3d2..5c596d86 100644 --- a/src/components/shared/TcTableContainer/TcTableCell.tsx +++ b/src/components/shared/TcTableContainer/TcTableCell.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { TableCell, TableCellProps } from '@mui/material'; +import React from 'react'; interface ITcTableCellProps extends TableCellProps { children: React.ReactNode; diff --git a/src/components/shared/TcTableContainer/TcTableContainer.spec.tsx b/src/components/shared/TcTableContainer/TcTableContainer.spec.tsx index bca231fe..da63de6c 100644 --- a/src/components/shared/TcTableContainer/TcTableContainer.spec.tsx +++ b/src/components/shared/TcTableContainer/TcTableContainer.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcTableContainer from './TcTableContainer'; describe('TcTableContainer', () => { diff --git a/src/components/shared/TcTableContainer/TcTableContainer.tsx b/src/components/shared/TcTableContainer/TcTableContainer.tsx index 9e580c73..62085b9e 100644 --- a/src/components/shared/TcTableContainer/TcTableContainer.tsx +++ b/src/components/shared/TcTableContainer/TcTableContainer.tsx @@ -1,7 +1,8 @@ -import React from 'react'; import { Table, TableProps } from '@mui/material'; -import TcTableHead from './TcTableHead'; +import React from 'react'; + import TcTableBody from './TcTableBody'; +import TcTableHead from './TcTableHead'; interface ITcTableContainerProps extends TableProps { headers?: string[]; @@ -28,7 +29,7 @@ function TcTableContainer({ ...props }: ITcTableContainerProps) { return ( -
+
{headers && headers.length > 0 && } {bodyRowItems && bodyRowItems.length > 0 && ( diff --git a/src/components/shared/TcTableContainer/TcTableHead.spec.tsx b/src/components/shared/TcTableContainer/TcTableHead.spec.tsx index 60d30645..c1d8edc1 100644 --- a/src/components/shared/TcTableContainer/TcTableHead.spec.tsx +++ b/src/components/shared/TcTableContainer/TcTableHead.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcTableHead from './TcTableHead'; describe('TcTableHead', () => { diff --git a/src/components/shared/TcTableContainer/TcTableHead.tsx b/src/components/shared/TcTableContainer/TcTableHead.tsx index f301c81e..331d65d3 100644 --- a/src/components/shared/TcTableContainer/TcTableHead.tsx +++ b/src/components/shared/TcTableContainer/TcTableHead.tsx @@ -1,5 +1,6 @@ +import { TableHead, TableHeadProps } from '@mui/material'; import React from 'react'; -import { TableHead, TableHeadProps, TableRow, TableCell } from '@mui/material'; + import TcTableRow from './TcTableRow'; interface ITcTableHeadProps extends TableHeadProps { @@ -17,7 +18,7 @@ function TcTableHead({ headers, ...props }: ITcTableHeadProps) { ); diff --git a/src/components/shared/TcTableContainer/TcTableRow.spec.tsx b/src/components/shared/TcTableContainer/TcTableRow.spec.tsx index cdedc478..b129f9de 100644 --- a/src/components/shared/TcTableContainer/TcTableRow.spec.tsx +++ b/src/components/shared/TcTableContainer/TcTableRow.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcTableRow from './TcTableRow'; describe('TcTableRow', () => { diff --git a/src/components/shared/TcTableContainer/TcTableRow.tsx b/src/components/shared/TcTableContainer/TcTableRow.tsx index bcadf15e..cefba6e6 100644 --- a/src/components/shared/TcTableContainer/TcTableRow.tsx +++ b/src/components/shared/TcTableContainer/TcTableRow.tsx @@ -1,7 +1,8 @@ -import React from 'react'; import { TableRow, TableRowProps } from '@mui/material'; -import TcTableCell from './TcTableCell'; import clsx from 'clsx'; +import React from 'react'; + +import TcTableCell from './TcTableCell'; interface ITcTableRowProps extends TableRowProps { rowItem: { [key: string]: any }; @@ -32,7 +33,7 @@ function TcTableRow({ className={clsx( customTableCellClasses ? `${customTableCellClasses}` - : `px-1 first:px-3 py-4 first:rounded-l-md first:border-r-0 last:rounded-r-md last:border-l-0` + : `px-1 py-4 first:rounded-l-md first:border-r-0 first:px-3 last:rounded-r-md last:border-l-0` )} > {CustomRenderer ? CustomRenderer(value) : value} diff --git a/src/components/shared/TcTabs/TcTab/TcTab.tsx b/src/components/shared/TcTabs/TcTab/TcTab.tsx index e05b7b2e..c9b97874 100644 --- a/src/components/shared/TcTabs/TcTab/TcTab.tsx +++ b/src/components/shared/TcTabs/TcTab/TcTab.tsx @@ -1,7 +1,7 @@ import { Tab, TabProps } from '@mui/material'; import React from 'react'; -interface ITcTabProps extends TabProps {} +type ITcTabProps = TabProps; function TcTab({ ...props }: ITcTabProps) { return ; diff --git a/src/components/shared/TcText.spec.tsx b/src/components/shared/TcText.spec.tsx index b5b45d20..5671ea19 100644 --- a/src/components/shared/TcText.spec.tsx +++ b/src/components/shared/TcText.spec.tsx @@ -1,12 +1,13 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; + import TcTitle from './TcText'; describe('TcTitle component', () => { test('Render component correctly', () => { const defaultText = 'Title Test'; //arrange - const { getByText } = render(); + const { getByText } = render(); //act //assert diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivity.spec.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivity.spec.tsx index afabbc4c..ae9eebb7 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivity.spec.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivity.spec.tsx @@ -1,22 +1,21 @@ -import React from 'react'; import { render } from '@testing-library/react'; -import TcAccountActivity from './TcAccountActivity'; -import TcAccountActivityHeader from './TcAccountActivityHeader'; -import TcAccountActivityContent from './TcAccountActivityContent'; +import React from 'react'; import { unmountComponentAtNode } from 'react-dom'; +import TcAccountActivity from './TcAccountActivity'; + // Mocking the child components to check only if they're rendered jest.mock('./TcAccountActivityHeader', () => { return { __esModule: true, - default: jest.fn(() =>
), + default: jest.fn(() =>
), }; }); jest.mock('./TcAccountActivityContent', () => { return { __esModule: true, - default: jest.fn(() =>
), + default: jest.fn(() =>
), }; }); diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivity.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivity.tsx index f69bc602..2cf60ff0 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivity.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivity.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useState } from 'react'; -import TcAccountActivityHeader from './TcAccountActivityHeader'; + import TcAccountActivityContent from './TcAccountActivityContent'; +import TcAccountActivityHeader from './TcAccountActivityHeader'; import { IAccount } from '../../../../utils/interfaces'; interface ITcAccountActivityProps { diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivityContent.spec.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivityContent.spec.tsx index 58d802da..f28b79db 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivityContent.spec.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivityContent.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcAccountActivityContent from './TcAccountActivityContent'; describe('', () => { diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivityContent.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivityContent.tsx index bd9501ac..1315f8cc 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivityContent.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivityContent.tsx @@ -1,7 +1,8 @@ import React from 'react'; + import TcCard from '../../../shared/TcCard'; -import TcText from '../../../shared/TcText'; import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; +import TcText from '../../../shared/TcText'; interface ITcAccountActivityContentProps { activityList: { @@ -15,24 +16,24 @@ function TcAccountActivityContent({ activityList, }: ITcAccountActivityContentProps) { return ( -
+
{activityList && activityList.map((el, index) => ( - +
+ -
+
{el.hasTooltipInfo ? ( - + ) : ( '' )} diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.spec.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.spec.tsx index f2258748..ff07727e 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.spec.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.spec.tsx @@ -1,7 +1,8 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; -import { StorageService } from '../../../../services/StorageService'; +import React from 'react'; + import TcAccountActivityHeader from './TcAccountActivityHeader'; +import { StorageService } from '../../../../services/StorageService'; jest.mock('../../../../services/StorageService'); diff --git a/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.tsx b/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.tsx index 8fa14290..11e79d7e 100644 --- a/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.tsx +++ b/src/components/twitter/growth/accountActivity/TcAccountActivityHeader.tsx @@ -1,35 +1,36 @@ import React from 'react'; import { BiTimeFive } from 'react-icons/bi'; -import TcText from '../../../shared/TcText'; -import TcLink from '../../../shared/TcLink'; + import { StorageService } from '../../../../services/StorageService'; import { IUser } from '../../../../utils/types'; +import TcLink from '../../../shared/TcLink'; +import TcText from '../../../shared/TcText'; export default function TcAccountActivityHeader() { const user = StorageService.readLocalStorage('user'); return ( -
+
- -
- + +
+
-
- +
+ {user?.twitter?.twitterUsername ? ( <> - + @{user?.twitter?.twitterUsername} ) : ( - + )}
diff --git a/src/components/twitter/growth/accountActivity/index.ts b/src/components/twitter/growth/accountActivity/index.ts index 1390b1f9..4ad10019 100644 --- a/src/components/twitter/growth/accountActivity/index.ts +++ b/src/components/twitter/growth/accountActivity/index.ts @@ -1 +1,3 @@ import { default as TcAccountActivity } from './TcAccountActivity'; + +export default { TcAccountActivity }; diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponse.spec.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponse.spec.tsx index 72349c42..20968b96 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponse.spec.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponse.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcAudienceResponse from './TcAudienceResponse'; describe('', () => { diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponse.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponse.tsx index e8b62a31..9e5b25f1 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponse.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponse.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useState } from 'react'; -import TcAudienceResponseHeader from './TcAudienceResponseHeader'; + import TcAudienceResponseContent from './TcAudienceResponseContent'; +import TcAudienceResponseHeader from './TcAudienceResponseHeader'; import { capitalizeFirstChar } from '../../../../helpers/helper'; import { IAudience } from '../../../../utils/interfaces'; interface ITcAudienceResponseProps { @@ -33,7 +34,7 @@ function TcAudienceResponse({ audience }: ITcAudienceResponseProps) { }, [audience]); return ( -
+
diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.spec.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.spec.tsx index e96d5057..9835dbb1 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.spec.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcAudienceResponseContent from './TcAudienceResponseContent'; describe('', () => { diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.tsx index 99874e14..1ee30578 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponseContent.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import TcCard from '../../../shared/TcCard'; import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; import TcText from '../../../shared/TcText'; @@ -15,26 +16,26 @@ interface ITcAudienceResponseContentProps { function TcAudienceResponseContent({ data }: ITcAudienceResponseContentProps) { return ( -
-
+
+
{data && data.map((el, index) => ( - +
+ -
+
{el.hasTooltipInfo ? ( - + ) : ( '' )} diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.spec.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.spec.tsx index fb051ba3..85a4755f 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.spec.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcAudienceResponseHeader from './TcAudienceResponseHeader'; describe('', () => { diff --git a/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.tsx b/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.tsx index ca777dc4..9cb6e57b 100644 --- a/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.tsx +++ b/src/components/twitter/growth/audienceResponse/TcAudienceResponseHeader.tsx @@ -1,14 +1,15 @@ import React from 'react'; + import TcText from '../../../shared/TcText'; function TcAudienceResponseHeader() { return ( -
- +
+
); diff --git a/src/components/twitter/growth/audienceResponse/index.ts b/src/components/twitter/growth/audienceResponse/index.ts index 8caef6bd..23cf1057 100644 --- a/src/components/twitter/growth/audienceResponse/index.ts +++ b/src/components/twitter/growth/audienceResponse/index.ts @@ -1 +1,3 @@ -import { default as TcYourAccountActivity } from './TcAudienceResponse'; +import { default as TcAudienceResponse } from './TcAudienceResponse'; + +export default { TcAudienceResponse }; diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.spec.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.spec.tsx index 0cc1eb9a..137d57df 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.spec.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.spec.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; + import TcEngagementAccountContentItems from './TcEngagementAccountContentItems'; describe('TcEngagementAccountContentItems', () => { diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.tsx index 12de32e6..ff728445 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountContentItems.tsx @@ -1,9 +1,10 @@ import clsx from 'clsx'; import React from 'react'; -import TcText from '../../../shared/TcText'; -import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; import { MdOutlineInfo } from 'react-icons/md'; +import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; +import TcText from '../../../shared/TcText'; + interface ITcEngagementAccountContentItemsProps { value: string | number; description: string; @@ -19,31 +20,31 @@ function TcEngagementAccountContentItems({ }: ITcEngagementAccountContentItemsProps) { return (
-
+
{tooltipText && ( } diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.spec.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.spec.tsx index a1e736e3..8f839ca9 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.spec.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcEngagementAccounts from './TcEngagementAccounts'; import TcEngagementAccountsHeader from './TcEngagementAccountsHeader'; diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.tsx index 3685055a..758e6e90 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccounts.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useState } from 'react'; -import TcEngagementAccountsHeader from './TcEngagementAccountsHeader'; + import TcEngagementAccountsContent from './TcEngagementAccountsContent'; +import TcEngagementAccountsHeader from './TcEngagementAccountsHeader'; import { IEngagement } from '../../../../utils/interfaces'; interface ITcEngagementAccountsProps { @@ -56,7 +57,7 @@ function TcEngagementAccounts({ engagement }: ITcEngagementAccountsProps) { }, [engagement]); return ( -
+
diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.spec.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.spec.tsx index 5bc50d29..152770e0 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.spec.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcEngagementAccountsContent from './TcEngagementAccountsContent'; describe('', () => { diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.tsx index ace180f2..9a00e567 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsContent.tsx @@ -1,6 +1,7 @@ import React from 'react'; -import TcText from '../../../shared/TcText'; + import TcEngagementAccountContentItems from './TcEngagementAccountContentItems'; +import TcText from '../../../shared/TcText'; interface IContentItem { bgColor: string; @@ -18,7 +19,7 @@ function TcEngagementAccountsContent({ contentItems, }: ITcEngagementAccountsContentProps) { const renderContentItems = (item: IContentItem, index: number) => ( -
+
{item.label && ( - + )}
); return ( -
-
+
+
-
+
-
+
{['High', 'Low'].map((label, index) => (
- -
+ +
{renderContentItems(contentItems[index * 2], index * 2)} {renderContentItems(contentItems[index * 2 + 1], index * 2 + 1)}
diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.spec.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.spec.tsx index 9aece62e..bf55e32c 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.spec.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.spec.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; // For the "toBeInTheDocument" matcher import TcAudienceResponseHeader from './TcEngagementAccountsHeader'; diff --git a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.tsx b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.tsx index db6f4477..ee141a3f 100644 --- a/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.tsx +++ b/src/components/twitter/growth/engagementAccounts/TcEngagementAccountsHeader.tsx @@ -1,10 +1,11 @@ import React from 'react'; + import TcText from '../../../shared/TcText'; function TcEngagementAccountsHeader() { return ( <> - + ); } diff --git a/src/components/twitter/growth/engagementAccounts/index.ts b/src/components/twitter/growth/engagementAccounts/index.ts index dbc6e621..a06db82a 100644 --- a/src/components/twitter/growth/engagementAccounts/index.ts +++ b/src/components/twitter/growth/engagementAccounts/index.ts @@ -1 +1,3 @@ import { default as TcEngagementAccounts } from './TcEngagementAccounts'; + +export default { TcEngagementAccounts }; diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeature.spec.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeature.spec.tsx index f15f09c5..f51d05de 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeature.spec.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeature.spec.tsx @@ -1,5 +1,6 @@ +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, screen, waitFor } from '@testing-library/react'; + import TcvoteFeature from './TcvoteFeature'; // Mocking child components diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeature.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeature.tsx index 2187feae..b87d2c86 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeature.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeature.tsx @@ -1,4 +1,5 @@ import React, { useState } from 'react'; + import TcvoteFeatureHeader from './TcvoteFeatureHeader'; import TcvoteFeatureVotes from './TcvoteFeatureVotes/TcvoteFeatureVotes'; import TcButton from '../../../shared/TcButton'; @@ -16,14 +17,14 @@ function TcvoteFeature() { }; return ( -
+
-
+
diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.spec.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.spec.tsx index a60accb2..90e531f7 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.spec.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.spec.tsx @@ -1,5 +1,5 @@ -import React from 'react'; import { render } from '@testing-library/react'; +import React from 'react'; import '@testing-library/jest-dom/extend-expect'; // For the "toBeInTheDocument" matcher import TcvoteFeatureHeader from './TcvoteFeatureHeader'; diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.tsx index 7709dbfe..c8ea2213 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureHeader.tsx @@ -1,13 +1,14 @@ import React from 'react'; + import TcText from '../../../shared/TcText'; function TcAudienceResponseHeader() { return ( -
+
); diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.spec.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.spec.tsx index 89c15eca..04ee5d13 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.spec.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.spec.tsx @@ -1,5 +1,6 @@ +import { cleanup, fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, screen, cleanup } from '@testing-library/react'; + import TcvoteFeatureVotes from './TcvoteFeatureVotes'; const TcvoteFeatureVotesMockList = [ diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.tsx index cc065682..af4fa574 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotes.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useState } from 'react'; + import TcvoteFeatureVotesItems from './TcvoteFeatureVotesItems'; const TcvoteFeatureVotesMockList = [ @@ -47,14 +48,14 @@ function TcvoteFeatureVotes({ ); }; return ( -
+
{TcvoteFeatureVotesMockList.map((item, index) => ( handleToggleCheckbox(event, index)} - color="secondary" + color='secondary' /> ))}
diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.spec.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.spec.tsx index 372e1069..5d4f435c 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.spec.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.spec.tsx @@ -1,13 +1,14 @@ +import { fireEvent, render, screen } from '@testing-library/react'; import React from 'react'; -import { render, fireEvent, screen } from '@testing-library/react'; + import TcvoteFeatureVotesItems from './TcvoteFeatureVotesItems'; describe('', () => { test('renders correctly', () => { render( @@ -18,8 +19,8 @@ describe('', () => { test('renders checked checkbox based on isChecked prop', () => { const { rerender } = render( @@ -28,8 +29,8 @@ describe('', () => { rerender( @@ -41,8 +42,8 @@ describe('', () => { const mockFn = jest.fn(); render( diff --git a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.tsx b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.tsx index faeb10d5..0e6c3efa 100644 --- a/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.tsx +++ b/src/components/twitter/growth/voteFeature/TcvoteFeatureVotes/TcvoteFeatureVotesItems.tsx @@ -1,6 +1,7 @@ +import { FormControlLabel } from '@mui/material'; import React from 'react'; + import TcCheckbox from '../../../../shared/TcCheckbox'; -import { FormControlLabel } from '@mui/material'; import TcText from '../../../../shared/TcText'; interface ITcvoteFeatureVotesItemsProps { @@ -18,10 +19,10 @@ function TcvoteFeatureVotesItems({ ...props }: ITcvoteFeatureVotesItemsProps) { return ( -
+
} + label={} control={ +
diff --git a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.spec.tsx b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.spec.tsx index 98716f26..9f57e011 100644 --- a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.spec.tsx +++ b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcYourAccountActivityContent from './TcYourAccountActivityContent'; describe('', () => { diff --git a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.tsx b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.tsx index 5e57ded6..af456c21 100644 --- a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.tsx +++ b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityContent.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import TcCard from '../../../shared/TcCard'; import TcIconWithTooltip from '../../../shared/TcIconWithTooltip'; import TcText from '../../../shared/TcText'; @@ -15,26 +16,26 @@ function TcYourAccountActivityContent({ data, }: IYourAccountActivityContentProps) { return ( -
-
+
+
{data && data.map((el, index) => ( - +
+ -
+
{el.hasTooltipInfo ? ( - + ) : null}
diff --git a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.spec.tsx b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.spec.tsx index e92f6527..68cb687e 100644 --- a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.spec.tsx +++ b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.spec.tsx @@ -1,5 +1,6 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; +import React from 'react'; + import TcYourAccountActivityHeader from './TcYourAccountActivityHeader'; describe('', () => { diff --git a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.tsx b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.tsx index 0f4b2f26..48eebc4b 100644 --- a/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.tsx +++ b/src/components/twitter/growth/yourAccountActivity/TcYourAccountActivityHeader.tsx @@ -1,18 +1,16 @@ import React from 'react'; + import TcText from '../../../shared/TcText'; -import { StorageService } from '../../../../services/StorageService'; -import { IUser } from '../../../../utils/types'; -import TcLink from '../../../shared/TcLink'; function TcYourAccountActivityHeader() { return ( -
-
- +
+
+
diff --git a/src/components/twitter/growth/yourAccountActivity/index.ts b/src/components/twitter/growth/yourAccountActivity/index.ts index ca1a5011..9827a53d 100644 --- a/src/components/twitter/growth/yourAccountActivity/index.ts +++ b/src/components/twitter/growth/yourAccountActivity/index.ts @@ -1 +1,3 @@ import { default as TcYourAccountActivity } from './TcYourAccountActivity'; + +export default { TcYourAccountActivity }; diff --git a/src/context/ChannelContext.tsx b/src/context/ChannelContext.tsx index deb54d0f..d7eb5f26 100644 --- a/src/context/ChannelContext.tsx +++ b/src/context/ChannelContext.tsx @@ -1,4 +1,5 @@ -import React, { createContext, useState, useContext, useCallback } from 'react'; +import React, { createContext, useCallback, useContext, useState } from 'react'; + import useAppStore from '../store/useStore'; export interface SubChannel { @@ -87,8 +88,8 @@ export const ChannelProvider = ({ children }: ChannelProviderProps) => { platformId: string, property: 'channel' = 'channel', selectedChannels?: string[], - hideDeactiveSubchannels: boolean = false, - allDefaultChecked: boolean = true + hideDeactiveSubchannels = false, + allDefaultChecked = true ) => { setLoading(true); try { @@ -149,14 +150,17 @@ export const ChannelProvider = ({ children }: ChannelProviderProps) => { selectedSubChannels[channelId]?.[subChannel.channelId] ); - const newSubChannelsState = subChannels.reduce((acc, subChannel) => { - if (subChannel.canReadMessageHistoryAndViewChannel) { - acc[subChannel.channelId] = !allSelected; - } else { - acc[subChannel.channelId] = false; - } - return acc; - }, {} as { [subChannelId: string]: boolean }); + const newSubChannelsState = subChannels.reduce( + (acc, subChannel) => { + if (subChannel.canReadMessageHistoryAndViewChannel) { + acc[subChannel.channelId] = !allSelected; + } else { + acc[subChannel.channelId] = false; + } + return acc; + }, + {} as { [subChannelId: string]: boolean } + ); setSelectedSubChannels((prev) => ({ ...prev, @@ -167,7 +171,7 @@ export const ChannelProvider = ({ children }: ChannelProviderProps) => { const updateSelectedSubChannels = ( allChannels: Channel[], newSelectedSubChannels: string[], - hideDeactiveSubchannels: boolean = false + hideDeactiveSubchannels = false ) => { if (hideDeactiveSubchannels) { const filteredChannels = allChannels diff --git a/src/context/SnackbarContext.tsx b/src/context/SnackbarContext.tsx index 9a68b715..dda02c1d 100644 --- a/src/context/SnackbarContext.tsx +++ b/src/context/SnackbarContext.tsx @@ -1,6 +1,6 @@ -import React, { createContext, useState, useContext, ReactNode } from 'react'; -import Snackbar, { SnackbarOrigin } from '@mui/material/Snackbar'; import Alert, { AlertColor } from '@mui/material/Alert'; +import Snackbar, { SnackbarOrigin } from '@mui/material/Snackbar'; +import React, { createContext, ReactNode, useContext, useState } from 'react'; type SnackbarContextType = { showMessage: ( diff --git a/src/context/TokenContext.tsx b/src/context/TokenContext.tsx index 25852924..382e13cf 100644 --- a/src/context/TokenContext.tsx +++ b/src/context/TokenContext.tsx @@ -1,16 +1,17 @@ import React, { - useState, - useContext, createContext, + ReactNode, + useContext, useEffect, useRef, - ReactNode, + useState, } from 'react'; -import { StorageService } from '../services/StorageService'; -import { IToken } from '../utils/types'; -import { IDiscordModifiedCommunity } from '../utils/interfaces'; + import { SnackbarProvider } from './SnackbarContext'; +import { StorageService } from '../services/StorageService'; import useAppStore from '../store/useStore'; +import { IDiscordModifiedCommunity } from '../utils/interfaces'; +import { IToken } from '../utils/types'; type TokenContextType = { token: IToken | null; diff --git a/src/helpers/amplitudeHelper.tsx b/src/helpers/amplitudeHelper.tsx index 72e72cc6..47540219 100644 --- a/src/helpers/amplitudeHelper.tsx +++ b/src/helpers/amplitudeHelper.tsx @@ -1,5 +1,8 @@ import * as amplitude from '@amplitude/analytics-browser'; import jwt_decode from 'jwt-decode'; +import { useRouter } from 'next/router'; +import { useEffect } from 'react'; + import { StorageService } from '../services/StorageService'; import { IDecodedToken, @@ -7,8 +10,6 @@ import { ITrackEventParams, } from '../utils/interfaces'; import { IUser } from '../utils/types'; -import { useEffect } from 'react'; -import { useRouter } from 'next/router'; export const setAmplitudeUserIdFromToken = () => { const user: IUser | undefined = diff --git a/src/helpers/csvHelper.tsx b/src/helpers/csvHelper.tsx index 62fe68a7..a40f4767 100644 --- a/src/helpers/csvHelper.tsx +++ b/src/helpers/csvHelper.tsx @@ -13,7 +13,7 @@ interface DataObject { */ function convertToCSV(data: any[]) { const flattenedData = data.map((item) => { - let flattenedItem: { [key: string]: string | number } = {}; + const flattenedItem: { [key: string]: string | number } = {}; for (const key in item) { if (item.hasOwnProperty(key)) { diff --git a/src/helpers/helper.ts b/src/helpers/helper.ts index b7819636..3d1d07d1 100644 --- a/src/helpers/helper.ts +++ b/src/helpers/helper.ts @@ -1,14 +1,15 @@ +import jwt_decode from 'jwt-decode'; import moment from 'moment'; + import { SelectedSubChannels } from '../context/ChannelContext'; import { IDecodedToken } from '../utils/interfaces'; import { IUser } from '../utils/types'; -import jwt_decode from 'jwt-decode'; export function capitalizeFirstChar(str: string): string { return str?.charAt(0).toUpperCase() + str.slice(1); } -export function truncateCenter(text: string, maxLength: number = 10): string { +export function truncateCenter(text: string, maxLength = 10): string { if (text.length <= maxLength) return text; const sideLength = Math.floor((maxLength - 3) / 2); // Subtract 3 for "..." diff --git a/src/layouts/centricLayout.tsx b/src/layouts/centricLayout.tsx index fe0ee30c..971c0358 100644 --- a/src/layouts/centricLayout.tsx +++ b/src/layouts/centricLayout.tsx @@ -1,6 +1,7 @@ import { Box, Container } from '@mui/material'; -import React from 'react'; import Image from 'next/image'; +import React from 'react'; + import tcLogo from '../assets/svg/tc-logo.svg'; interface ICentricLayout { @@ -9,12 +10,12 @@ interface ICentricLayout { function centricLayout({ children }: ICentricLayout) { return ( - + - + {children} diff --git a/src/layouts/defaultLayout.tsx b/src/layouts/defaultLayout.tsx index 2ed3c239..21e02d31 100644 --- a/src/layouts/defaultLayout.tsx +++ b/src/layouts/defaultLayout.tsx @@ -1,7 +1,8 @@ import React from 'react'; + +import TcPrompt from '../components/layouts/shared/TcPrompt'; import Sidebar from '../components/layouts/Sidebar'; import SidebarXs from '../components/layouts/xs/SidebarXs'; -import TcPrompt from '../components/layouts/shared/TcPrompt'; type IDefaultLayoutProps = { children: React.ReactNode; @@ -11,10 +12,10 @@ export const defaultLayout = ({ children }: IDefaultLayoutProps) => { return ( <> -
+
-
{children}
+
{children}
); diff --git a/src/layouts/emptyLayout.tsx b/src/layouts/emptyLayout.tsx index 262f5526..4bad4304 100644 --- a/src/layouts/emptyLayout.tsx +++ b/src/layouts/emptyLayout.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React from 'react'; type Props = { children: React.ReactNode; @@ -7,7 +7,7 @@ type Props = { export const emptyLayout = ({ children }: Props) => { return ( <> -
+
{children}
diff --git a/src/lib/attributes/Menu.ts b/src/lib/attributes/Menu.ts index ab3d7841..5f85b8c9 100644 --- a/src/lib/attributes/Menu.ts +++ b/src/lib/attributes/Menu.ts @@ -1,8 +1,8 @@ -const menu =[ - { - name:'test', - path:'/', - } -] +const menu = [ + { + name: 'test', + path: '/', + }, +]; -export default menu; \ No newline at end of file +export default menu; diff --git a/src/lib/data/heatmap.ts b/src/lib/data/heatmap.ts index 94c46815..6ef87d3a 100644 --- a/src/lib/data/heatmap.ts +++ b/src/lib/data/heatmap.ts @@ -179,4 +179,4 @@ const defaultHeatmapChartOptions = { }, }; -export { WEEK_DAYS, HOURE_DAYS, defaultHeatmapChartOptions }; +export { defaultHeatmapChartOptions, HOURE_DAYS, WEEK_DAYS }; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index ea9dc52d..4dcb2764 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,10 +1,10 @@ -import '../styles/globals.css'; +import { config } from '@fortawesome/fontawesome-svg-core'; import type { AppProps } from 'next/app'; import React, { useEffect } from 'react'; import { hotjar } from 'react-hotjar'; +import '../styles/globals.css'; import '@fortawesome/fontawesome-svg-core/styles.css'; -import { config } from '@fortawesome/fontawesome-svg-core'; config.autoAddCss = false; type ComponentWithPageLayout = AppProps & { Component: AppProps['Component'] & { @@ -13,18 +13,19 @@ type ComponentWithPageLayout = AppProps & { }; import { ThemeProvider } from '@mui/material'; -import { theme } from '../utils/theme'; - +import Script from 'next/script'; import { ToastContainer } from 'react-toastify'; + import 'react-toastify/dist/ReactToastify.css'; -import PrivateRoute from '../utils/privateRoute'; -import { conf } from '../configs'; + import AmplitudeAnalytics from '../components/global/AmplitudeAnalytics'; -import Script from 'next/script'; -import { usePageViewTracking } from '../helpers/amplitudeHelper'; import SafaryClubScript from '../components/global/SafaryClubScript'; -import { TokenProvider } from '../context/TokenContext'; +import { conf } from '../configs'; import { ChannelProvider } from '../context/ChannelContext'; +import { TokenProvider } from '../context/TokenContext'; +import { usePageViewTracking } from '../helpers/amplitudeHelper'; +import PrivateRoute from '../utils/privateRoute'; +import { theme } from '../utils/theme'; export default function App({ Component, pageProps }: ComponentWithPageLayout) { usePageViewTracking(); @@ -44,7 +45,7 @@ export default function App({ Component, pageProps }: ComponentWithPageLayout) { <> -