diff --git a/.eslintrc.js b/.eslintrc.js
index b9d2a257..74614599 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,3 +1,10 @@
+const OFF = 0;
+const WARNING = 1;
+const ERROR = 2;
+
+// Prevent importing lodash, usually for browser bundle size reasons
+const LodashImportPatterns = ["lodash", "lodash.**", "lodash/**"];
+
module.exports = {
root: true,
env: {
@@ -6,80 +13,391 @@ module.exports = {
node: true,
},
parser: "@typescript-eslint/parser",
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ["./tsconfig.json", "./website/tsconfig.json"],
- },
+ parserOptions: {},
globals: {
JSX: true,
},
extends: [
"eslint:recommended",
- "plugin:react/recommended",
"plugin:react-hooks/recommended",
+ "airbnb",
"plugin:@typescript-eslint/recommended",
- "plugin:import/recommended",
+ // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
+ // 'plugin:@typescript-eslint/strict',
"plugin:regexp/recommended",
- "plugin:prettier/recommended",
+ "prettier",
+ "plugin:@docusaurus/all",
],
settings: {
"import/resolver": {
node: {
extensions: [".js", ".jsx", ".ts", ".tsx"],
},
- typescript: true,
- },
- react: {
- version: "detect",
},
},
- overrides: [
- {
- files: ["*.ts", "*.tsx"],
- rules: {
- "import/no-unresolved": "off",
- },
- },
- {
- files: ["*.js", "*.cjs"],
- rules: {
- "@typescript-eslint/no-var-requires": "off",
- },
- },
- ],
- plugins: ["@typescript-eslint"],
+ reportUnusedDisableDirectives: true,
+ plugins: ["react-hooks", "@typescript-eslint", "regexp", "@docusaurus"],
rules: {
- "linebreak-style": ["error", "unix"],
- quotes: ["error", "double", { avoidEscape: true }],
- semi: ["error", "always"],
- "@typescript-eslint/no-non-null-assertion": "off",
+ "react/jsx-uses-react": OFF, // JSX runtime: automatic
+ "react/react-in-jsx-scope": OFF, // JSX runtime: automatic
+ "array-callback-return": WARNING,
+ camelcase: WARNING,
+ "class-methods-use-this": OFF, // It's a way of allowing private variables.
+ curly: [WARNING, "all"],
+ "global-require": WARNING,
+ "lines-between-class-members": OFF,
+ "max-classes-per-file": OFF,
+ "max-len": [
+ WARNING,
+ {
+ code: Infinity, // Code width is already enforced by Prettier
+ tabWidth: 2,
+ comments: 80,
+ ignoreUrls: true,
+ ignorePattern: "(eslint-disable|@)",
+ },
+ ],
+ "arrow-body-style": OFF,
+ "no-await-in-loop": OFF,
+ "no-case-declarations": WARNING,
+ "no-console": OFF,
+ "no-constant-binary-expression": ERROR,
+ "no-continue": OFF,
+ "no-control-regex": WARNING,
+ "no-else-return": OFF,
+ "no-empty": [WARNING, { allowEmptyCatch: true }],
+ "no-lonely-if": WARNING,
+ "no-nested-ternary": WARNING,
+ "no-param-reassign": [WARNING, { props: false }],
+ "no-prototype-builtins": WARNING,
+ "no-restricted-exports": OFF,
+ "no-restricted-properties": [
+ ERROR,
+ .../** @type {[string, string][]} */ ([
+ // TODO: TS doesn't make Boolean a narrowing function yet,
+ // so filter(Boolean) is problematic type-wise
+ // ['compact', 'Array#filter(Boolean)'],
+ ["concat", "Array#concat"],
+ ["drop", "Array#slice(n)"],
+ ["dropRight", "Array#slice(0, -n)"],
+ ["fill", "Array#fill"],
+ ["filter", "Array#filter"],
+ ["find", "Array#find"],
+ ["findIndex", "Array#findIndex"],
+ ["first", "foo[0]"],
+ ["flatten", "Array#flat"],
+ ["flattenDeep", "Array#flat(Infinity)"],
+ ["flatMap", "Array#flatMap"],
+ ["fromPairs", "Object.fromEntries"],
+ ["head", "foo[0]"],
+ ["indexOf", "Array#indexOf"],
+ ["initial", "Array#slice(0, -1)"],
+ ["join", "Array#join"],
+ // Unfortunately there's no great alternative to _.last yet
+ // Candidates: foo.slice(-1)[0]; foo[foo.length - 1]
+ // Array#at is ES2022; could replace _.nth as well
+ // ['last'],
+ ["map", "Array#map"],
+ ["reduce", "Array#reduce"],
+ ["reverse", "Array#reverse"],
+ ["slice", "Array#slice"],
+ ["take", "Array#slice(0, n)"],
+ ["takeRight", "Array#slice(-n)"],
+ ["tail", "Array#slice(1)"],
+ ]).map(([property, alternative]) => ({
+ object: "_",
+ property,
+ message: `Use ${alternative} instead.`,
+ })),
+ ...[
+ "readdirSync",
+ "readFileSync",
+ "statSync",
+ "lstatSync",
+ "existsSync",
+ "pathExistsSync",
+ "realpathSync",
+ "mkdirSync",
+ "mkdirpSync",
+ "mkdirsSync",
+ "writeFileSync",
+ "writeJsonSync",
+ "outputFileSync",
+ "outputJsonSync",
+ "moveSync",
+ "copySync",
+ "copyFileSync",
+ "ensureFileSync",
+ "ensureDirSync",
+ "ensureLinkSync",
+ "ensureSymlinkSync",
+ "unlinkSync",
+ "removeSync",
+ "emptyDirSync",
+ ].map((property) => ({
+ object: "fs",
+ property,
+ message: "Do not use sync fs methods.",
+ })),
+ ],
+ "no-restricted-syntax": [
+ WARNING,
+ // Copied from airbnb, removed for...of statement, added export all
+ {
+ selector: "ForInStatement",
+ message:
+ "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",
+ },
+ {
+ selector: "LabeledStatement",
+ message:
+ "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",
+ },
+ {
+ selector: "WithStatement",
+ message:
+ "`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",
+ },
+ {
+ selector: "ExportAllDeclaration",
+ message:
+ "Export all does't work well if imported in ESM due to how they are transpiled, and they can also lead to unexpected exposure of internal methods.",
+ },
+ // TODO make an internal plugin to ensure this
+ // {
+ // selector:
+ // @ 'ExportDefaultDeclaration > Identifier, ExportNamedDeclaration[source=null] > ExportSpecifier',
+ // message: 'Export in one statement'
+ // },
+ ...["path", "fs-extra", "webpack", "lodash"].map((m) => ({
+ selector: `ImportDeclaration[importKind=value]:has(Literal[value=${m}]) > ImportSpecifier[importKind=value]`,
+ message:
+ "Default-import this, both for readability and interoperability with ESM",
+ })),
+ ],
+ "no-template-curly-in-string": WARNING,
+ "no-unused-expressions": [
+ WARNING,
+ { allowTaggedTemplates: true, allowShortCircuit: true },
+ ],
+ "no-useless-escape": WARNING,
+ "no-void": [ERROR, { allowAsStatement: true }],
+ "prefer-destructuring": WARNING,
+ "prefer-named-capture-group": WARNING,
+ "prefer-template": WARNING,
+ yoda: WARNING,
+
+ "import/extensions": OFF,
+ // This rule doesn't yet support resolving .js imports when the actual file
+ // is .ts. Plus it's not all that useful when our code is fully TS-covered.
+ "import/no-unresolved": [
+ OFF,
+ {
+ // Ignore certain webpack aliases because they can't be resolved
+ ignore: [
+ "^@theme",
+ "^@docusaurus",
+ "^@generated",
+ "^@site",
+ "^@testing-utils",
+ ],
+ },
+ ],
"import/order": [
- "error",
+ WARNING,
{
groups: [
"builtin",
"external",
"internal",
- "parent",
- "sibling",
- "index",
+ ["parent", "sibling", "index"],
+ "type",
],
+ "newlines-between": "always",
pathGroups: [
+ // always put css import to the last, ref:
+ // https://github.com/import-js/eslint-plugin-import/issues/1239
+ {
+ pattern: "*.+(css|sass|less|scss|pcss|styl)",
+ group: "unknown",
+ patternOptions: { matchBase: true },
+ position: "after",
+ },
{ pattern: "react", group: "builtin", position: "before" },
+ { pattern: "react-dom", group: "builtin", position: "before" },
+ { pattern: "react-dom/**", group: "builtin", position: "before" },
+ { pattern: "stream", group: "builtin", position: "before" },
{ pattern: "fs-extra", group: "builtin" },
{ pattern: "lodash", group: "external", position: "before" },
{ pattern: "clsx", group: "external", position: "before" },
+ // 'Bit weird to not use the `import/internal-regex` option, but this
+ // way, we can make `import type { Props } from "@theme/*"` appear
+ // before `import styles from "styles.module.css"`, which is what we
+ // always did. This should be removable once we stop using ambient
+ // module declarations for theme aliases.
{ pattern: "@theme/**", group: "internal" },
{ pattern: "@site/**", group: "internal" },
{ pattern: "@theme-init/**", group: "internal" },
{ pattern: "@theme-original/**", group: "internal" },
+ { pattern: "@/components/**", group: "internal" },
+ { pattern: "@/libs/**", group: "internal" },
+ { pattern: "@/types/**", group: "type" },
],
pathGroupsExcludedImportTypes: [],
- "newlines-between": "always",
- alphabetize: {
- order: "asc",
- },
+ // example: let `import './nprogress.css';` after importing others
+ // in `packages/docusaurus-theme-classic/src/nprogress.ts`
+ // see more: https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md#warnonunassignedimports-truefalse
+ warnOnUnassignedImports: true,
+ },
+ ],
+ "import/prefer-default-export": OFF,
+
+ "jsx-a11y/click-events-have-key-events": WARNING,
+ "jsx-a11y/no-noninteractive-element-interactions": WARNING,
+ "jsx-a11y/html-has-lang": OFF,
+
+ "react-hooks/rules-of-hooks": ERROR,
+ "react-hooks/exhaustive-deps": ERROR,
+
+ // Sometimes we do need the props as a whole, e.g. when spreading
+ "react/destructuring-assignment": OFF,
+ "react/function-component-definition": [
+ WARNING,
+ {
+ namedComponents: "function-declaration",
+ unnamedComponents: "arrow-function",
+ },
+ ],
+ "react/jsx-filename-extension": OFF,
+ "react/jsx-key": [ERROR, { checkFragmentShorthand: true }],
+ "react/jsx-no-useless-fragment": [ERROR, { allowExpressions: true }],
+ "react/jsx-props-no-spreading": OFF,
+ "react/no-array-index-key": OFF, // We build a static site, and nearly all components don't change.
+ "react/no-unstable-nested-components": [WARNING, { allowAsProps: true }],
+ "react/prefer-stateless-function": WARNING,
+ "react/prop-types": OFF,
+ "react/require-default-props": [
+ ERROR,
+ { ignoreFunctionalComponents: true },
+ ],
+
+ "@typescript-eslint/consistent-type-definitions": OFF,
+ "@typescript-eslint/require-await": OFF,
+
+ "@typescript-eslint/ban-ts-comment": [
+ ERROR,
+ { "ts-expect-error": "allow-with-description" },
+ ],
+ "@typescript-eslint/consistent-indexed-object-style": OFF,
+ "@typescript-eslint/consistent-type-imports": [
+ WARNING,
+ { disallowTypeAnnotations: false },
+ ],
+ "@typescript-eslint/explicit-module-boundary-types": WARNING,
+ "@typescript-eslint/method-signature-style": ERROR,
+ "@typescript-eslint/no-empty-function": OFF,
+ "@typescript-eslint/no-empty-interface": [
+ ERROR,
+ {
+ allowSingleExtends: true,
+ },
+ ],
+ "@typescript-eslint/no-inferrable-types": OFF,
+ "@typescript-eslint/no-namespace": [WARNING, { allowDeclarations: true }],
+ "no-use-before-define": OFF,
+ "@typescript-eslint/no-use-before-define": [
+ ERROR,
+ { functions: false, classes: false, variables: true },
+ ],
+ "@typescript-eslint/no-non-null-assertion": OFF,
+ "no-redeclare": OFF,
+ "@typescript-eslint/no-redeclare": ERROR,
+ "no-shadow": OFF,
+ "@typescript-eslint/no-shadow": ERROR,
+ "no-unused-vars": OFF,
+ // We don't provide any escape hatches for this rule. Rest siblings and
+ // function placeholder params are always ignored, and any other unused
+ // locals must be justified with a disable comment.
+ "@typescript-eslint/no-unused-vars": [ERROR, { ignoreRestSiblings: true }],
+ "@typescript-eslint/prefer-optional-chain": ERROR,
+ "@docusaurus/no-html-links": ERROR,
+ "@docusaurus/prefer-docusaurus-heading": ERROR,
+ "@docusaurus/no-untranslated-text": [
+ WARNING,
+ {
+ ignoredStrings: [
+ "·",
+ "-",
+ "—",
+ "×",
+ "", // zwj:
+ "@",
+ "WebContainers",
+ "Twitter",
+ "GitHub",
+ "Dev.to",
+ "1.x",
+ ],
},
],
},
+ overrides: [
+ {
+ files: ["packages/*/src/theme/**/*.{js,ts,tsx}"],
+ excludedFiles: "*.test.{js,ts,tsx}",
+ rules: {
+ "no-restricted-imports": [
+ "error",
+ {
+ patterns: LodashImportPatterns.concat(
+ // Prevents relative imports between React theme components
+ [
+ "../**",
+ "./**",
+ // Allows relative styles module import with consistent filename
+ "!./styles.module.css",
+ // Allows relative tailwind css import with consistent filename
+ "!./styles.css",
+ ]
+ ),
+ },
+ ],
+ },
+ },
+ {
+ files: ["packages/*/src/theme/**/*.{js,ts,tsx}"],
+ rules: {
+ "import/no-named-export": ERROR,
+ },
+ },
+ {
+ files: ["*.d.ts"],
+ rules: {
+ "import/no-duplicates": OFF,
+ },
+ },
+ {
+ files: ["*.{ts,tsx}"],
+ rules: {
+ "no-undef": OFF,
+ "import/no-import-module-exports": OFF,
+ },
+ },
+ {
+ files: ["*.{js,mjs,cjs}"],
+ rules: {
+ // Make JS code directly runnable in Node.
+ "@typescript-eslint/no-var-requires": OFF,
+ "@typescript-eslint/explicit-module-boundary-types": OFF,
+ },
+ },
+ {
+ // Internal files where extraneous deps don't matter much at long as
+ // they run
+ files: ["website/**"],
+ rules: {
+ "import/no-extraneous-dependencies": OFF,
+ },
+ },
+ ],
};
diff --git a/package.json b/package.json
index 4f3b98ee..bc1bab28 100644
--- a/package.json
+++ b/package.json
@@ -21,16 +21,15 @@
"pyright": "pyright"
},
"devDependencies": {
- "@typescript-eslint/eslint-plugin": "^6.6.0",
- "@typescript-eslint/parser": "^6.6.0",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.62.0",
"cross-env": "^7.0.3",
"eslint": "^8.48.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-import-resolver-typescript": "^3.6.0",
- "eslint-plugin-import": "^2.28.1",
+ "eslint-config-airbnb": "^19.0.4",
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.7.1",
- "eslint-plugin-prettier": "^5.0.0",
- "eslint-plugin-react": "^7.33.2",
+ "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-regexp": "^1.15.0",
"prettier": "^3.0.3",
diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts
index 77f340fc..d051cd74 100644
--- a/website/docusaurus.config.ts
+++ b/website/docusaurus.config.ts
@@ -1,7 +1,8 @@
+import { themes } from "prism-react-renderer";
+
import type { Config } from "@docusaurus/types";
import type { Options as ChangelogOptions } from "@nullbot/docusaurus-plugin-changelog";
import type * as Preset from "@nullbot/docusaurus-preset-nonepress";
-import { themes } from "prism-react-renderer";
// color mode config
const colorMode: Preset.ThemeConfig["colorMode"] = {
diff --git a/website/package.json b/website/package.json
index 8a3ca182..24c2b1e4 100644
--- a/website/package.json
+++ b/website/package.json
@@ -27,6 +27,7 @@
},
"dependencies": {
"@docusaurus/core": "^3.7.0",
+ "@docusaurus/eslint-plugin": "3.7.0",
"@mdx-js/react": "^3.0.0",
"@nullbot/docusaurus-plugin-changelog": "^3.0.0",
"@nullbot/docusaurus-preset-nonepress": "^3.0.0",
diff --git a/website/sidebars.ts b/website/sidebars.ts
index aa8f23a9..3a7f5da1 100644
--- a/website/sidebars.ts
+++ b/website/sidebars.ts
@@ -10,9 +10,10 @@
*/
import path from "path";
-import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
import { getChangelogItemsSync } from "@nullbot/docusaurus-plugin-changelog";
+import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
+
const changelogPath = path.join(__dirname, "src/changelog/changelog.md");
const changelogItems = getChangelogItemsSync(changelogPath, 10);
diff --git a/website/src/components/Asciinema/container.tsx b/website/src/components/Asciinema/container.tsx
index 602b3d46..5205f1c6 100644
--- a/website/src/components/Asciinema/container.tsx
+++ b/website/src/components/Asciinema/container.tsx
@@ -32,5 +32,5 @@ export default function AsciinemaContainer({
AsciinemaPlayer.create(url, ref.current, options);
}, [url, options]);
- return
;
+ return ;
}
diff --git a/website/src/components/Asciinema/index.tsx b/website/src/components/Asciinema/index.tsx
index 48f486c3..cadd4840 100644
--- a/website/src/components/Asciinema/index.tsx
+++ b/website/src/components/Asciinema/index.tsx
@@ -1,9 +1,11 @@
import React from "react";
import BrowserOnly from "@docusaurus/BrowserOnly";
+
import "asciinema-player/dist/bundle/asciinema-player.css";
import type { Props } from "./container";
+
import "./styles.css";
export type { Props } from "./container";
diff --git a/website/src/components/Form/Items/Tag/index.tsx b/website/src/components/Form/Items/Tag/index.tsx
index 96adf31c..7dfd7c09 100644
--- a/website/src/components/Form/Items/Tag/index.tsx
+++ b/website/src/components/Form/Items/Tag/index.tsx
@@ -8,7 +8,8 @@ import { ChromePicker, type ColorResult } from "react-color";
import "./styles.css";
import TagComponent from "@/components/Tag";
-import { Tag as TagType } from "@/types/tag";
+
+import type { Tag as TagType } from "@/types/tag";
export type Props = {
allowTags: TagType[];
@@ -103,7 +104,7 @@ export default function TagFormItem({
diff --git a/website/src/components/Form/index.tsx b/website/src/components/Form/index.tsx
index af53f687..4308f4f0 100644
--- a/website/src/components/Form/index.tsx
+++ b/website/src/components/Form/index.tsx
@@ -4,10 +4,13 @@ import clsx from "clsx";
import "./styles.css";
+
+import type { Resource } from "@/libs/store";
+import { fetchRegistryData } from "@/libs/store";
+
import TagFormItem from "./Items/Tag";
-import { fetchRegistryData, Resource } from "@/libs/store";
-import { Tag as TagType } from "@/types/tag";
+import type { Tag as TagType } from "@/types/tag";
export type FormItemData = {
type: string;
@@ -62,8 +65,8 @@ export function Form({
(item) => item.name
);
if (currentStepNames.every((name) => result[name]))
- setCurrentStep(currentStep + 1);
- else return;
+ {setCurrentStep(currentStep + 1);}
+ else {}
};
const onPrev = () => currentStep > 0 && setCurrentStep(currentStep - 1);
const onNext = () =>
diff --git a/website/src/components/Home/index.tsx b/website/src/components/Home/index.tsx
index 19f38865..3a7131e2 100644
--- a/website/src/components/Home/index.tsx
+++ b/website/src/components/Home/index.tsx
@@ -2,6 +2,7 @@ import React from "react";
import HomeFeatures from "./Feature";
import HomeHero from "./Hero";
+
import "./styles.css";
export default function HomeContent(): React.ReactNode {
diff --git a/website/src/components/Messenger/index.tsx b/website/src/components/Messenger/index.tsx
index bdcff435..f25bd821 100644
--- a/website/src/components/Messenger/index.tsx
+++ b/website/src/components/Messenger/index.tsx
@@ -7,6 +7,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { useNonepressThemeConfig } from "@nullbot/docusaurus-theme-nonepress/client";
import ThemedImage from "@theme/ThemedImage";
+
import "./styles.css";
export type Message = {
@@ -54,7 +55,7 @@ function MessageBox({
dangerouslySetInnerHTML={{
__html: msg.replace(/\n/g, "
").replace(/ /g, " "),
}}
- >
+ />
);
}
diff --git a/website/src/components/Paginate/index.tsx b/website/src/components/Paginate/index.tsx
index 292b0015..7049c766 100644
--- a/website/src/components/Paginate/index.tsx
+++ b/website/src/components/Paginate/index.tsx
@@ -3,6 +3,7 @@ import React, { useCallback } from "react";
import clsx from "clsx";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+
import type { usePagination } from "react-use-pagination";
import "./styles.css";
@@ -66,7 +67,7 @@ export default function Paginate({
const even = MAX_LENGTH % 2 === 0 ? 1 : 0;
const left = Math.floor(MAX_LENGTH / 2);
const right = totalPages - left + even + 1;
- currentPage = currentPage + 1;
+ currentPage += 1;
if (totalPages <= MAX_LENGTH) {
pages.push(...range(1, totalPages));
diff --git a/website/src/components/Resource/Avatar/index.tsx b/website/src/components/Resource/Avatar/index.tsx
new file mode 100644
index 00000000..fc8243af
--- /dev/null
+++ b/website/src/components/Resource/Avatar/index.tsx
@@ -0,0 +1,43 @@
+import { useState } from "react";
+import Link from "@docusaurus/Link";
+import clsx from "clsx";
+
+interface Props {
+ className?: string;
+ authorLink: string;
+ authorAvatar: string;
+}
+
+export default function Avatar({ authorLink, authorAvatar, className }: Props) {
+ const [loaded, setLoaded] = useState(false);
+ const onLoad = () => setLoaded(true);
+
+ return (
+
+
+
+
+ {!loaded && (
+
+ )}
+

+
+
+
+
+ );
+}
diff --git a/website/src/components/Resource/Card/index.tsx b/website/src/components/Resource/Card/index.tsx
index e5ba5075..0069af9e 100644
--- a/website/src/components/Resource/Card/index.tsx
+++ b/website/src/components/Resource/Card/index.tsx
@@ -5,9 +5,11 @@ import clsx from "clsx";
import Link from "@docusaurus/Link";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import Avatar from "@/components/Resource/Avatar";
import Tag from "@/components/Resource/Tag";
import ValidStatus from "@/components/Resource/ValidStatus";
import type { Resource } from "@/libs/store";
+
import "./styles.css";
export type Props = {
@@ -73,7 +75,7 @@ export default function ResourceCard({
/>
))}
-
+
@@ -99,13 +101,12 @@ export default function ResourceCard({
)}
-
-
-
-

-
-
-
+
{
const fetchingTasks: Promise[] = [];
- if (resource.resourceType === "bot" || resource.resourceType === "driver")
+ if (resource.resourceType === "bot" || resource.resourceType === "driver") {
return;
+ }
- if (resource.project_link)
+ if (resource.project_link) {
fetchingTasks.push(fetchPypiProject(resource.project_link));
+ }
Promise.all(fetchingTasks);
}, [resource]);
@@ -115,10 +117,11 @@ export default function ResourceDetailCard({ resource }: Props) {
return (
<>
-
@@ -152,7 +155,7 @@ export default function ResourceDetailCard({ resource }: Props) {
-
+
{resource.desc}
diff --git a/website/src/components/Resource/Tag/index.tsx b/website/src/components/Resource/Tag/index.tsx
index 14196986..67c78a57 100644
--- a/website/src/components/Resource/Tag/index.tsx
+++ b/website/src/components/Resource/Tag/index.tsx
@@ -3,7 +3,10 @@ import React from "react";
import clsx from "clsx";
import { pickTextColor } from "@/libs/color";
+
import type { Tag } from "@/types/tag";
+
+
import "./styles.css";
export type Props = Tag & {
diff --git a/website/src/components/Resource/ValidStatus/index.tsx b/website/src/components/Resource/ValidStatus/index.tsx
index 52149a66..5aee4a3a 100644
--- a/website/src/components/Resource/ValidStatus/index.tsx
+++ b/website/src/components/Resource/ValidStatus/index.tsx
@@ -2,17 +2,18 @@ import React from "react";
import clsx from "clsx";
-import type { IconName } from "@fortawesome/fontawesome-common-types";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { Resource } from "@/libs/store";
+import type { Resource } from "@/libs/store";
import { ValidStatus } from "@/libs/valid";
+import type { IconName } from "@fortawesome/fontawesome-common-types";
+
export const getValidStatus = (resource: Resource) => {
switch (resource.resourceType) {
case "plugin":
- if (resource.skip_test) return ValidStatus.SKIP;
- if (resource.valid) return ValidStatus.VALID;
+ if (resource.skip_test) {return ValidStatus.SKIP;}
+ if (resource.valid) {return ValidStatus.VALID;}
return ValidStatus.INVALID;
default:
return ValidStatus.MISSING;
diff --git a/website/src/components/Searcher/index.tsx b/website/src/components/Searcher/index.tsx
index ab23225c..d74a06af 100644
--- a/website/src/components/Searcher/index.tsx
+++ b/website/src/components/Searcher/index.tsx
@@ -4,6 +4,7 @@ import clsx from "clsx";
import { translate } from "@docusaurus/Translate";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+
import "./styles.css";
export type Props = {
diff --git a/website/src/components/Store/Content/Adapter.tsx b/website/src/components/Store/Content/Adapter.tsx
index 3ec6ff2d..404e96a5 100644
--- a/website/src/components/Store/Content/Adapter.tsx
+++ b/website/src/components/Store/Content/Adapter.tsx
@@ -4,7 +4,6 @@ import Translate from "@docusaurus/Translate";
import { usePagination } from "react-use-pagination";
import Admonition from "@theme/Admonition";
-
import AdapterForm from "@/components/Form/Adapter";
import Modal from "@/components/Modal";
import Paginate from "@/components/Paginate";
@@ -16,6 +15,7 @@ import { authorFilter, tagFilter } from "@/libs/filter";
import { useSearchControl } from "@/libs/search";
import { fetchRegistryData, loadFailedTitle } from "@/libs/store";
import { useToolbar } from "@/libs/toolbar";
+
import type { Adapter } from "@/types/adapter";
export default function AdapterPage(): React.ReactNode {
@@ -146,7 +146,7 @@ export default function AdapterPage(): React.ReactNode {
) : loading ? (
-
+
) : (
diff --git a/website/src/components/Store/Content/Bot.tsx b/website/src/components/Store/Content/Bot.tsx
index 72899ccf..ecce12ae 100644
--- a/website/src/components/Store/Content/Bot.tsx
+++ b/website/src/components/Store/Content/Bot.tsx
@@ -4,7 +4,6 @@ import Translate from "@docusaurus/Translate";
import { usePagination } from "react-use-pagination";
import Admonition from "@theme/Admonition";
-
import BotForm from "@/components/Form/Bot";
import Modal from "@/components/Modal";
import Paginate from "@/components/Paginate";
@@ -15,6 +14,7 @@ import { authorFilter, tagFilter } from "@/libs/filter";
import { useSearchControl } from "@/libs/search";
import { fetchRegistryData, loadFailedTitle } from "@/libs/store";
import { useToolbar } from "@/libs/toolbar";
+
import type { Bot } from "@/types/bot";
export default function PluginPage(): React.ReactNode {
@@ -138,7 +138,7 @@ export default function PluginPage(): React.ReactNode {
) : loading ? (
-
+
) : (
diff --git a/website/src/components/Store/Content/Driver.tsx b/website/src/components/Store/Content/Driver.tsx
index 90d394d5..42f4517f 100644
--- a/website/src/components/Store/Content/Driver.tsx
+++ b/website/src/components/Store/Content/Driver.tsx
@@ -4,7 +4,6 @@ import Translate from "@docusaurus/Translate";
import { usePagination } from "react-use-pagination";
import Admonition from "@theme/Admonition";
-
import Modal from "@/components/Modal";
import Paginate from "@/components/Paginate";
import ResourceCard from "@/components/Resource/Card";
@@ -13,6 +12,7 @@ import Searcher from "@/components/Searcher";
import { authorFilter, tagFilter } from "@/libs/filter";
import { useSearchControl } from "@/libs/search";
import { fetchRegistryData, loadFailedTitle } from "@/libs/store";
+
import type { Driver } from "@/types/driver";
export default function DriverPage(): React.ReactNode {
@@ -123,7 +123,7 @@ export default function DriverPage(): React.ReactNode {
) : loading ? (
-
+
) : (
diff --git a/website/src/components/Store/Content/Plugin.tsx b/website/src/components/Store/Content/Plugin.tsx
index ba53114c..52d9f242 100644
--- a/website/src/components/Store/Content/Plugin.tsx
+++ b/website/src/components/Store/Content/Plugin.tsx
@@ -4,7 +4,6 @@ import Translate, { translate } from "@docusaurus/Translate";
import { usePagination } from "react-use-pagination";
import Admonition from "@theme/Admonition";
-
import PluginForm from "@/components/Form/Plugin";
import Modal from "@/components/Modal";
import Paginate from "@/components/Paginate";
@@ -20,6 +19,7 @@ import { useSearchControl } from "@/libs/search";
import { SortMode } from "@/libs/sorter";
import { fetchRegistryData, loadFailedTitle } from "@/libs/store";
import { useToolbar } from "@/libs/toolbar";
+
import type { Plugin } from "@/types/plugin";
export default function PluginPage(): React.ReactNode {
@@ -149,7 +149,7 @@ export default function PluginPage(): React.ReactNode {
{"当前共有 {filteredPluginCount} / {pluginCount} 个插件"}
@@ -180,7 +180,7 @@ export default function PluginPage(): React.ReactNode {
) : loading ? (
-
+
) : (
diff --git a/website/src/components/Store/Toolbar.tsx b/website/src/components/Store/Toolbar.tsx
index 37cc8c1a..a1fce1a1 100644
--- a/website/src/components/Store/Toolbar.tsx
+++ b/website/src/components/Store/Toolbar.tsx
@@ -2,9 +2,10 @@ import React, { useState } from "react";
import clsx from "clsx";
-import type { IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import type { IconProp } from "@fortawesome/fontawesome-svg-core";
+
export type Filter = {
label: string;
icon: IconProp;
diff --git a/website/src/components/Tag/index.tsx b/website/src/components/Tag/index.tsx
index 83f5a7b1..ba0b503f 100644
--- a/website/src/components/Tag/index.tsx
+++ b/website/src/components/Tag/index.tsx
@@ -5,7 +5,8 @@ import clsx from "clsx";
import "./styles.css";
import { pickTextColor } from "@/libs/color";
-import { Tag as TagType } from "@/types/tag";
+
+import type { Tag as TagType } from "@/types/tag";
export default function Tag({
label,
diff --git a/website/src/libs/filter.ts b/website/src/libs/filter.ts
index 7197bcbc..aea3db43 100644
--- a/website/src/libs/filter.ts
+++ b/website/src/libs/filter.ts
@@ -2,10 +2,12 @@ import { useCallback, useState } from "react";
import { translate } from "@docusaurus/Translate";
-import type { Resource } from "./store";
+import { getValidStatus } from "@/components/Resource/ValidStatus";
+
import { ValidStatus } from "./valid";
-import { getValidStatus } from "@/components/Resource/ValidStatus";
+import type { Resource } from "./store";
+
export type Filter
= {
type: string;
@@ -102,7 +104,7 @@ export const queryFilter = (
id: `query-${query}`,
displayName: query,
filter: (resource: Resource): boolean => {
- if (!query) return true;
+ if (!query) {return true;}
const queryLower = query.toLowerCase();
const pluginMatch =
resource.resourceType === "plugin" &&
@@ -141,7 +143,7 @@ export function useFilteredResources(
const addFilter = useCallback(
(filter: Filter) => {
- if (filters.some((f) => f.id === filter.id)) return;
+ if (filters.some((f) => f.id === filter.id)) {return;}
setFilters((filters) => [...filters, filter]);
},
[filters, setFilters]
diff --git a/website/src/libs/search.ts b/website/src/libs/search.ts
index a90f26a0..cf5672d9 100644
--- a/website/src/libs/search.ts
+++ b/website/src/libs/search.ts
@@ -1,6 +1,7 @@
import { useCallback, useEffect, useState } from "react";
import { type Filter, useFilteredResources, queryFilter } from "./filter";
+
import type { Resource } from "./store";
type useSearchControlReturn = {
@@ -42,7 +43,7 @@ export function useSearchControl(
const newFilter = queryFilter(newQuery);
// do nothing if filter is not changed
- if (currentFilter?.id === newFilter.id) return;
+ if (currentFilter?.id === newFilter.id) {return;}
// remove old currentFilter
currentFilter && removeFilter(currentFilter);
diff --git a/website/src/libs/store.ts b/website/src/libs/store.ts
index f2bd4f4d..3b0c66c4 100644
--- a/website/src/libs/store.ts
+++ b/website/src/libs/store.ts
@@ -31,9 +31,9 @@ export async function fetchRegistryData(
throw new Error(`Failed to fetch ${dataType}s: ${e}`);
});
if (!resp.ok)
- throw new Error(
+ {throw new Error(
`Failed to fetch ${dataType}s: ${resp.status} ${resp.statusText}`
- );
+ );}
const data = (await resp.json()) as RegistryDataResponseTypes[T];
return data.map(
(resource) => ({ ...resource, resourceType: dataType }) as ResourceTypes[T]
diff --git a/website/src/libs/toolbar.ts b/website/src/libs/toolbar.ts
index c47f56e6..611b2739 100644
--- a/website/src/libs/toolbar.ts
+++ b/website/src/libs/toolbar.ts
@@ -1,15 +1,16 @@
import { translate } from "@docusaurus/Translate";
+import type { Filter as FilterTool } from "@/components/Store/Toolbar";
+
import {
authorFilter,
tagFilter,
validStatusFilter,
type Filter,
} from "./filter";
-import type { Resource } from "./store";
import { ValidStatus } from "./valid";
-import type { Filter as FilterTool } from "@/components/Store/Toolbar";
+import type { Resource } from "./store";
type Props = {
resources: T[];
@@ -75,7 +76,7 @@ export function useToolbar({
choices: Object.keys(validateStatusFilterMapping),
onSubmit: (type: string) => {
const validStatus = validateStatusFilterMapping[type];
- if (!validStatus) return;
+ if (!validStatus) {return;}
addFilter(validStatusFilter(validStatus));
},
};
diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx
index b8e43994..bc740e21 100644
--- a/website/src/pages/index.tsx
+++ b/website/src/pages/index.tsx
@@ -1,7 +1,6 @@
import React from "react";
import Layout from "@theme/Layout";
-
import HomeContent from "@/components/Home";
export default function Homepage(): React.ReactNode {
diff --git a/website/src/theme/Page/TOC/Container/index.tsx b/website/src/theme/Page/TOC/Container/index.tsx
index afd51125..aee1c9af 100644
--- a/website/src/theme/Page/TOC/Container/index.tsx
+++ b/website/src/theme/Page/TOC/Container/index.tsx
@@ -4,6 +4,7 @@ import { useWindowSize } from "@nullbot/docusaurus-theme-nonepress/client";
import type { Props } from "@theme/Page/TOC/Container";
import OriginTOCContainer from "@theme-original/Page/TOC/Container";
+
import "./styles.css";
export default function TOCContainer({
@@ -18,7 +19,7 @@ export default function TOCContainer({
{children}
{isClient && (
)}
diff --git a/website/static/service-worker.js b/website/static/service-worker.js
index 2923c038..575736a8 100644
--- a/website/static/service-worker.js
+++ b/website/static/service-worker.js
@@ -1,14 +1,14 @@
-self.addEventListener("install", function () {
+self.addEventListener("install", () => {
self.skipWaiting();
});
-self.addEventListener("activate", function () {
+self.addEventListener("activate", () => {
self.registration
.unregister()
- .then(function () {
+ .then(() => {
return self.clients.matchAll();
})
- .then(function (clients) {
+ .then((clients) => {
clients.forEach((client) => client.navigate(client.url));
});
});
diff --git a/website/static/uwu.js b/website/static/uwu.js
index b29baefa..95b41f6a 100644
--- a/website/static/uwu.js
+++ b/website/static/uwu.js
@@ -1,2 +1,2 @@
if (location.search.includes("?uwu"))
- document.documentElement.setAttribute("data-uwu", "true");
+ {document.documentElement.setAttribute("data-uwu", "true");}
diff --git a/website/tailwind.config.ts b/website/tailwind.config.ts
index f886d511..3b113e06 100644
--- a/website/tailwind.config.ts
+++ b/website/tailwind.config.ts
@@ -11,7 +11,7 @@ function excludeThemeColor(
): { [key: string]: string } {
const newObj: { [key: string]: string } = {};
for (const key in theme) {
- if (exclude.includes(key)) continue;
+ if (exclude.includes(key)) {continue;}
newObj[key] = theme[key]!;
}
return newObj;
diff --git a/yarn.lock b/yarn.lock
index c560b6d3..c985164c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1521,6 +1521,14 @@
postcss-sort-media-queries "^5.2.0"
tslib "^2.6.0"
+"@docusaurus/eslint-plugin@3.7.0":
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/@docusaurus/eslint-plugin/-/eslint-plugin-3.7.0.tgz#bb5a13ba7fffb25cd122bf8d955b00fd4017c994"
+ integrity sha512-Bnmx16acy1cFTkv5onm8kRngU6xETEIqkuka+bH4+gCADnKJewHQ/3CRGjsRaii1M/103NSzGlf8ffQ1k9S04w==
+ dependencies:
+ "@typescript-eslint/utils" "^5.62.0"
+ tslib "^2.6.0"
+
"@docusaurus/faster@^3.7.0":
version "3.7.0"
resolved "https://registry.npmjs.org/@docusaurus/faster/-/faster-3.7.0.tgz#8062e05a3d044c0dd470b4812796a113b10b835c"
@@ -1828,7 +1836,7 @@
utility-types "^3.10.0"
webpack "^5.88.1"
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
+"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
@@ -1840,7 +1848,7 @@
resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.0.tgz#7ccb5f58703fa61ffdcbf39e2c604a109e781162"
integrity sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==
-"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
+"@eslint-community/regexpp@^4.6.1":
version "4.11.1"
resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f"
integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==
@@ -2111,11 +2119,6 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@nolyfill/is-core-module@1.0.39":
- version "1.0.39"
- resolved "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e"
- integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==
-
"@nullbot/docusaurus-plugin-changelog@^3.0.0":
version "3.4.0"
resolved "https://registry.npmjs.org/@nullbot/docusaurus-plugin-changelog/-/docusaurus-plugin-changelog-3.4.0.tgz#0e6f810f6015663bbd21a5ca02bc56a03b17bfa3"
@@ -2216,11 +2219,6 @@
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-"@pkgr/core@^0.1.0":
- version "0.1.1"
- resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
- integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
-
"@pnpm/config.env-replace@^1.1.0":
version "1.1.0"
resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c"
@@ -2714,7 +2712,7 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
+"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
version "7.0.15"
resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
@@ -2852,7 +2850,7 @@
dependencies:
"@types/node" "*"
-"@types/semver@^7.5.0":
+"@types/semver@^7.3.12":
version "7.5.8"
resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
@@ -2917,91 +2915,89 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^6.6.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3"
- integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==
+"@typescript-eslint/eslint-plugin@^5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
+ integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
dependencies:
- "@eslint-community/regexpp" "^4.5.1"
- "@typescript-eslint/scope-manager" "6.21.0"
- "@typescript-eslint/type-utils" "6.21.0"
- "@typescript-eslint/utils" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
+ "@eslint-community/regexpp" "^4.4.0"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/type-utils" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
debug "^4.3.4"
graphemer "^1.4.0"
- ignore "^5.2.4"
- natural-compare "^1.4.0"
- semver "^7.5.4"
- ts-api-utils "^1.0.1"
+ ignore "^5.2.0"
+ natural-compare-lite "^1.4.0"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
-"@typescript-eslint/parser@^6.6.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b"
- integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==
+"@typescript-eslint/parser@^5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
+ integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
dependencies:
- "@typescript-eslint/scope-manager" "6.21.0"
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/typescript-estree" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
+ "@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@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1"
- integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==
+"@typescript-eslint/scope-manager@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+ integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
dependencies:
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
-"@typescript-eslint/type-utils@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e"
- integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==
+"@typescript-eslint/type-utils@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
+ integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==
dependencies:
- "@typescript-eslint/typescript-estree" "6.21.0"
- "@typescript-eslint/utils" "6.21.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
debug "^4.3.4"
- ts-api-utils "^1.0.1"
+ tsutils "^3.21.0"
-"@typescript-eslint/types@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
- integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
+"@typescript-eslint/types@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+ integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
-"@typescript-eslint/typescript-estree@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
- integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
+"@typescript-eslint/typescript-estree@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+ integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
dependencies:
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
+ "@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"
- minimatch "9.0.3"
- semver "^7.5.4"
- ts-api-utils "^1.0.1"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
-"@typescript-eslint/utils@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134"
- integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==
+"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+ integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
dependencies:
- "@eslint-community/eslint-utils" "^4.4.0"
- "@types/json-schema" "^7.0.12"
- "@types/semver" "^7.5.0"
- "@typescript-eslint/scope-manager" "6.21.0"
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/typescript-estree" "6.21.0"
- semver "^7.5.4"
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ eslint-scope "^5.1.1"
+ semver "^7.3.7"
-"@typescript-eslint/visitor-keys@6.21.0":
- version "6.21.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47"
- integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==
+"@typescript-eslint/visitor-keys@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+ integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
dependencies:
- "@typescript-eslint/types" "6.21.0"
- eslint-visitor-keys "^3.4.1"
+ "@typescript-eslint/types" "5.62.0"
+ eslint-visitor-keys "^3.3.0"
"@ungap/structured-clone@^1.0.0":
version "1.3.0"
@@ -4093,6 +4089,11 @@ configstore@^6.0.0:
write-file-atomic "^3.0.3"
xdg-basedir "^5.0.1"
+confusing-browser-globals@^1.0.10:
+ version "1.0.11"
+ resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
+ integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
+
connect-history-api-fallback@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
@@ -4483,7 +4484,7 @@ debug@2.6.9, debug@^2.6.0:
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.7:
+debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
version "4.4.0"
resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
@@ -4844,7 +4845,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1:
dependencies:
once "^1.4.0"
-enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1:
+enhanced-resolve@^5.17.1:
version "5.18.1"
resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf"
integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==
@@ -5046,10 +5047,29 @@ escape-string-regexp@^5.0.0:
resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
-eslint-config-prettier@^9.0.0:
- version "9.1.0"
- resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
- integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
+eslint-config-airbnb-base@^15.0.0:
+ version "15.0.0"
+ resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236"
+ integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==
+ dependencies:
+ confusing-browser-globals "^1.0.10"
+ object.assign "^4.1.2"
+ object.entries "^1.1.5"
+ semver "^6.3.0"
+
+eslint-config-airbnb@^19.0.4:
+ version "19.0.4"
+ resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3"
+ integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==
+ dependencies:
+ eslint-config-airbnb-base "^15.0.0"
+ object.assign "^4.1.2"
+ object.entries "^1.1.5"
+
+eslint-config-prettier@^8.8.0:
+ version "8.10.0"
+ resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11"
+ integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
eslint-import-resolver-node@^0.3.9:
version "0.3.9"
@@ -5060,19 +5080,6 @@ eslint-import-resolver-node@^0.3.9:
is-core-module "^2.13.0"
resolve "^1.22.4"
-eslint-import-resolver-typescript@^3.6.0:
- version "3.8.3"
- resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.8.3.tgz#1721a1e4417e57a8fe6bf9463d0db8e220285eef"
- integrity sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ==
- dependencies:
- "@nolyfill/is-core-module" "1.0.39"
- debug "^4.3.7"
- enhanced-resolve "^5.15.0"
- get-tsconfig "^4.10.0"
- is-bun-module "^1.0.2"
- stable-hash "^0.0.4"
- tinyglobby "^0.2.12"
-
eslint-module-utils@^2.12.0:
version "2.12.0"
resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b"
@@ -5080,7 +5087,7 @@ eslint-module-utils@^2.12.0:
dependencies:
debug "^3.2.7"
-eslint-plugin-import@^2.28.1:
+eslint-plugin-import@^2.27.5:
version "2.31.0"
resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7"
integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
@@ -5126,20 +5133,12 @@ eslint-plugin-jsx-a11y@^6.7.1:
safe-regex-test "^1.0.3"
string.prototype.includes "^2.0.1"
-eslint-plugin-prettier@^5.0.0:
- version "5.2.3"
- resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz#c4af01691a6fa9905207f0fbba0d7bea0902cce5"
- integrity sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==
- dependencies:
- prettier-linter-helpers "^1.0.0"
- synckit "^0.9.1"
-
eslint-plugin-react-hooks@^4.6.0:
version "4.6.2"
resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596"
integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==
-eslint-plugin-react@^7.33.2:
+eslint-plugin-react@^7.32.2:
version "7.37.4"
resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz#1b6c80b6175b6ae4b26055ae4d55d04c414c7181"
integrity sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==
@@ -5177,7 +5176,7 @@ eslint-plugin-regexp@^1.15.0:
regexp-ast-analysis "^0.6.0"
scslre "^0.2.0"
-eslint-scope@5.1.1:
+eslint-scope@5.1.1, eslint-scope@^5.1.1:
version "5.1.1"
resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -5526,11 +5525,6 @@ faye-websocket@^0.11.3:
dependencies:
websocket-driver ">=0.5.1"
-fdir@^6.4.3:
- version "6.4.3"
- resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72"
- integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==
-
figures@^3.2.0:
version "3.2.0"
resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@@ -5808,13 +5802,6 @@ get-symbol-description@^1.1.0:
es-errors "^1.3.0"
get-intrinsic "^1.2.6"
-get-tsconfig@^4.10.0:
- version "4.10.0"
- resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb"
- integrity sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==
- dependencies:
- resolve-pkg-maps "^1.0.0"
-
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
@@ -6551,13 +6538,6 @@ is-boolean-object@^1.2.1:
call-bound "^1.0.3"
has-tostringtag "^1.0.2"
-is-bun-module@^1.0.2:
- version "1.3.0"
- resolved "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz#ea4d24fdebfcecc98e81bcbcb506827fee288760"
- integrity sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==
- dependencies:
- semver "^7.6.3"
-
is-callable@^1.2.7:
version "1.2.7"
resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
@@ -8109,13 +8089,6 @@ minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch
dependencies:
brace-expansion "^1.1.7"
-minimatch@9.0.3:
- version "9.0.3"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
- integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
- dependencies:
- brace-expansion "^2.0.1"
-
minimatch@^9.0.4:
version "9.0.5"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
@@ -8189,6 +8162,11 @@ napi-build-utils@^2.0.0:
resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e"
integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==
+natural-compare-lite@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+ integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -8321,7 +8299,7 @@ object-keys@^1.1.1:
resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.7:
+object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.7:
version "4.1.7"
resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d"
integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
@@ -8333,7 +8311,7 @@ object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.7:
has-symbols "^1.1.0"
object-keys "^1.1.1"
-object.entries@^1.1.8:
+object.entries@^1.1.5, object.entries@^1.1.8:
version "1.1.8"
resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41"
integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==
@@ -8657,11 +8635,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-picomatch@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
- integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
-
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -10036,11 +10009,6 @@ resolve-pathname@^3.0.0:
resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==
-resolve-pkg-maps@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
- integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
-
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.14.2, resolve@^1.22.8:
version "1.22.10"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
@@ -10227,12 +10195,12 @@ semver-diff@^4.0.0:
dependencies:
semver "^7.3.5"
-semver@^6.3.1:
+semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.3:
+semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4:
version "7.7.1"
resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
@@ -10633,11 +10601,6 @@ sprintf-js@~1.0.2:
resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-stable-hash@^0.0.4:
- version "0.0.4"
- resolved "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz#55ae7dadc13e4b3faed13601587cec41859b42f7"
- integrity sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==
-
statuses@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
@@ -10992,14 +10955,6 @@ swc-loader@^0.2.6:
dependencies:
"@swc/counter" "^0.1.3"
-synckit@^0.9.1:
- version "0.9.2"
- resolved "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62"
- integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==
- dependencies:
- "@pkgr/core" "^0.1.0"
- tslib "^2.6.2"
-
table@^6.8.1:
version "6.8.2"
resolved "https://registry.npmjs.org/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58"
@@ -11157,14 +11112,6 @@ tinycolor2@^1.4.1:
resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
-tinyglobby@^0.2.12:
- version "0.2.12"
- resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5"
- integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==
- dependencies:
- fdir "^6.4.3"
- picomatch "^4.0.2"
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -11197,11 +11144,6 @@ trough@^2.0.0:
resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f"
integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==
-ts-api-utils@^1.0.1:
- version "1.3.0"
- resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
- integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
-
ts-interface-checker@^0.1.9:
version "0.1.13"
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
@@ -11217,11 +11159,23 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^2.0.3, tslib@^2.6.0, tslib@^2.6.2:
+tslib@^1.8.1:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.0.3, tslib@^2.6.0:
version "2.8.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+tsutils@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+ integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+ dependencies:
+ tslib "^1.8.1"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"