diff --git a/eslint-plugin-sort-destructure-keys.d.ts b/eslint-plugin-sort-destructure-keys.d.ts
new file mode 100644
index 0000000..55d4410
--- /dev/null
+++ b/eslint-plugin-sort-destructure-keys.d.ts
@@ -0,0 +1 @@
+declare module 'eslint-plugin-sort-destructure-keys';
diff --git a/eslint.config.mts b/eslint.config.mts
new file mode 100644
index 0000000..26a62d2
--- /dev/null
+++ b/eslint.config.mts
@@ -0,0 +1,26 @@
+import eslint from '@eslint/js';
+import globals from "globals";
+import tseslint from "typescript-eslint";
+import sortDestructureKeys from "eslint-plugin-sort-destructure-keys";
+import { defineConfig } from "eslint/config";
+
+export default defineConfig([
+ eslint.configs.recommended,
+ tseslint.configs.recommended,
+ {
+ files: ["**/*.{ts,tsx}"],
+ plugins: {
+ "sort-destructure-keys": sortDestructureKeys,
+ },
+ languageOptions: { globals: { ...globals.browser, ...globals.node } },
+ rules: {
+ "no-unused-vars": "off",
+ "@typescript-eslint/no-unused-vars": ["error"],
+ "sort-destructure-keys/sort-destructure-keys": [
+ 2,
+ { caseSensitive: false },
+ ],
+ "@typescript-eslint/no-require-imports": "off",
+ },
+ },
+]);
\ No newline at end of file
diff --git a/gatsby-config.js b/gatsby-config.js
index fce520c..278425b 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -1,83 +1,83 @@
module.exports = {
- graphqlTypegen: true,
- siteMetadata: {
- title: 'Gatsby + Netlify CMS Starter',
- description:
- 'This repo contains an example business website that is built with Gatsby, and Netlify CMS.It follows the JAMstack architecture by using Git as a single source of truth, and Netlify for continuous deployment, and CDN distribution.',
- },
- plugins: [
- 'gatsby-plugin-react-helmet-async',
- 'gatsby-plugin-fix-fouc',
- {
- resolve: 'gatsby-plugin-sass',
- options: {
- sassOptions: {
- indentedSyntax: true,
- },
- },
- },
- {
- // keep as first gatsby-source-filesystem plugin for gatsby image support
- resolve: 'gatsby-source-filesystem',
- options: {
- path: `${__dirname}/static/img`,
- name: 'uploads',
- },
- },
- {
- resolve: 'gatsby-source-filesystem',
- options: {
- path: `${__dirname}/src/pages`,
- name: 'pages',
- },
+ graphqlTypegen: true,
+ siteMetadata: {
+ title: "Gatsby + Netlify CMS Starter",
+ description:
+ "This repo contains an example business website that is built with Gatsby, and Netlify CMS.It follows the JAMstack architecture by using Git as a single source of truth, and Netlify for continuous deployment, and CDN distribution.",
},
- {
- resolve: 'gatsby-source-filesystem',
- options: {
- path: `${__dirname}/src/img`,
- name: 'images',
- },
- },
- `gatsby-plugin-image`,
- 'gatsby-plugin-sharp',
- 'gatsby-transformer-sharp',
- {
- resolve: 'gatsby-transformer-remark',
- options: {
- plugins: [
- 'gatsby-remark-relative-images',
- {
- resolve: 'gatsby-remark-images',
+ plugins: [
+ "gatsby-plugin-react-helmet-async",
+ "gatsby-plugin-fix-fouc",
+ {
+ resolve: "gatsby-plugin-sass",
options: {
- // It's important to specify the maxWidth (in pixels) of
- // the content container as this plugin uses this as the
- // base for generating different widths of each image.
- maxWidth: 2048,
+ sassOptions: {
+ indentedSyntax: true,
+ },
},
- },
- {
- resolve: 'gatsby-remark-copy-linked-files',
+ },
+ {
+ // keep as first gatsby-source-filesystem plugin for gatsby image support
+ resolve: "gatsby-source-filesystem",
options: {
- destinationDir: 'static',
+ path: `${__dirname}/static/img`,
+ name: "uploads",
},
- },
- ],
- },
- },
- {
- resolve: 'gatsby-plugin-decap-cms',
- options: {
- modulePath: `${__dirname}/src/cms/cms.js`,
- },
- },
- {
- resolve: 'gatsby-plugin-purgecss', // purges all unused/unreferenced css rules
- options: {
- develop: true, // Activates purging in npm run develop
- purgeOnly: ['/bulma-style.sass'], // applies purging only on the bulma css file
- printRejected: true,
- },
- }, // must be after other CSS plugins
- 'gatsby-plugin-netlify', // make sure to keep it last in the array
- ],
-}
+ },
+ {
+ resolve: "gatsby-source-filesystem",
+ options: {
+ path: `${__dirname}/src/pages`,
+ name: "pages",
+ },
+ },
+ {
+ resolve: "gatsby-source-filesystem",
+ options: {
+ path: `${__dirname}/src/img`,
+ name: "images",
+ },
+ },
+ `gatsby-plugin-image`,
+ "gatsby-plugin-sharp",
+ "gatsby-transformer-sharp",
+ {
+ resolve: "gatsby-transformer-remark",
+ options: {
+ plugins: [
+ "gatsby-remark-relative-images",
+ {
+ resolve: "gatsby-remark-images",
+ options: {
+ // It's important to specify the maxWidth (in pixels) of
+ // the content container as this plugin uses this as the
+ // base for generating different widths of each image.
+ maxWidth: 2048,
+ },
+ },
+ {
+ resolve: "gatsby-remark-copy-linked-files",
+ options: {
+ destinationDir: "static",
+ },
+ },
+ ],
+ },
+ },
+ {
+ resolve: "gatsby-plugin-decap-cms",
+ options: {
+ modulePath: `${__dirname}/src/cms/cms.js`,
+ },
+ },
+ {
+ resolve: "gatsby-plugin-purgecss", // purges all unused/unreferenced css rules
+ options: {
+ develop: true, // Activates purging in npm run develop
+ purgeOnly: ["/bulma-style.sass"], // applies purging only on the bulma css file
+ printRejected: true,
+ },
+ }, // must be after other CSS plugins
+ "gatsby-plugin-netlify", // make sure to keep it last in the array
+ ],
+};
diff --git a/gatsby-node.js b/gatsby-node.js
index 7a1404e..9fda52f 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -1,16 +1,16 @@
-const _ = require('lodash')
-const fs = require('fs')
-const path = require('path')
-const { createFilePath } = require('gatsby-source-filesystem')
+const _ = require("lodash");
+const fs = require("fs");
+const path = require("path");
+const { createFilePath } = require("gatsby-source-filesystem");
const {
- stringWithDefault,
- resolveToArray,
- resolveSlug,
- resolveSoftwareTools,
-} = require('./gatsby/utils/gatsby-resolver-utils')
-const { DATASET_PATH } = require('./gatsby/constants')
+ stringWithDefault,
+ resolveToArray,
+ resolveSlug,
+ resolveSoftwareTools,
+} = require("./gatsby/utils/gatsby-resolver-utils");
+const { DATASET_PATH } = require("./gatsby/constants");
-const read = (p) => fs.readFileSync(path.join(__dirname, p), 'utf8')
+const read = (p) => fs.readFileSync(path.join(__dirname, p), "utf8");
/**
* Markdown in /src/pages/ with these templateKeys are data-only
@@ -116,48 +116,48 @@ exports.createResolvers = ({ createResolvers }) => {
* Skips creating pages for data-only pages.
*/
exports.createPages = ({ actions, graphql }) => {
- const { createPage } = actions
-
- return graphql(`
- {
- allMarkdownRemark(limit: 1000) {
- edges {
- node {
- id
- fields {
- slug
- }
- frontmatter {
- tags
- templateKey
- draft
+ const { createPage } = actions;
+
+ return graphql(`
+ {
+ allMarkdownRemark(limit: 1000) {
+ edges {
+ node {
+ id
+ fields {
+ slug
+ }
+ frontmatter {
+ tags
+ templateKey
+ draft
+ }
+ }
+ }
}
- }
}
- }
- }
- `).then((result) => {
- if (result.errors) {
- result.errors.forEach((e) => console.error(e.toString()))
- return Promise.reject(result.errors)
- }
+ `).then((result) => {
+ if (result.errors) {
+ result.errors.forEach((e) => console.error(e.toString()));
+ return Promise.reject(result.errors);
+ }
- const posts = result.data.allMarkdownRemark.edges
+ const posts = result.data.allMarkdownRemark.edges;
- posts.forEach((edge) => {
- const id = edge.node.id
- const templateKey = edge.node.frontmatter.templateKey
+ posts.forEach((edge) => {
+ const id = edge.node.id;
+ const templateKey = edge.node.frontmatter.templateKey;
- // Skip creating pages for data-only pages (software, dataset, etc.)
- if (DATA_ONLY_PAGES.includes(templateKey)) {
- return
- }
+ // Skip creating pages for data-only pages (software, dataset, etc.)
+ if (DATA_ONLY_PAGES.includes(templateKey)) {
+ return;
+ }
- // Skip creating pages for drafts
- // Toggle boolean flag on dev-example pages during development
- if (edge.node.frontmatter.draft === true) {
- return
- }
+ // Skip creating pages for drafts
+ // Toggle boolean flag on dev-example pages during development
+ if (edge.node.frontmatter.draft === true) {
+ return;
+ }
createPage({
path: edge.node.fields.slug,
@@ -172,41 +172,41 @@ exports.createPages = ({ actions, graphql }) => {
});
});
- // Tag pages:
- let tags = []
- // Iterate through each post, putting all found tags into `tags`
- posts.forEach((edge) => {
- if (_.get(edge, `node.frontmatter.tags`)) {
- tags = tags.concat(edge.node.frontmatter.tags)
- }
- })
- // Eliminate duplicate tags
- tags = _.uniq(tags)
-
- // Make tag pages
- tags.forEach((tag) => {
- const tagPath = `/tags/${_.kebabCase(tag)}/`
-
- createPage({
- path: tagPath,
- component: path.resolve(`src/templates/tags.tsx`),
- context: {
- tag,
- },
- })
- })
- })
-}
+ // Tag pages:
+ let tags = [];
+ // Iterate through each post, putting all found tags into `tags`
+ posts.forEach((edge) => {
+ if (_.get(edge, `node.frontmatter.tags`)) {
+ tags = tags.concat(edge.node.frontmatter.tags);
+ }
+ });
+ // Eliminate duplicate tags
+ tags = _.uniq(tags);
+
+ // Make tag pages
+ tags.forEach((tag) => {
+ const tagPath = `/tags/${_.kebabCase(tag)}/`;
+
+ createPage({
+ path: tagPath,
+ component: path.resolve(`src/templates/tags.tsx`),
+ context: {
+ tag,
+ },
+ });
+ });
+ });
+};
exports.onCreateNode = ({ node, actions, getNode }) => {
- const { createNodeField } = actions
-
- if (node.internal.type === `MarkdownRemark`) {
- const value = createFilePath({ node, getNode })
- createNodeField({
- name: `slug`,
- node,
- value,
- })
- }
-}
+ const { createNodeField } = actions;
+
+ if (node.internal.type === `MarkdownRemark`) {
+ const value = createFilePath({ node, getNode });
+ createNodeField({
+ name: `slug`,
+ node,
+ value,
+ });
+ }
+};
diff --git a/package.json b/package.json
index ab224ed..7d8b4da 100644
--- a/package.json
+++ b/package.json
@@ -1,74 +1,80 @@
{
- "name": "aics-idea-board",
- "version": "0.0.2",
- "author": "Megan Riel-Mehan",
- "dependencies": {
- "@ant-design/icons": "^5.5.1",
- "@reach/router": "^1.3.4",
- "antd": "^5.21.2",
- "bulma": "^1.0.4",
- "decap-cms-app": "^3.0.12",
- "gatsby": "^5.14.0-next.3",
- "gatsby-plugin-decap-cms": "^4.0.3",
- "gatsby-plugin-fix-fouc": "^1.1.3",
- "gatsby-plugin-image": "^3.13.1",
- "gatsby-plugin-netlify": "^5.0.0",
- "gatsby-plugin-purgecss": "^6.0.0",
- "gatsby-plugin-react-helmet-async": "^1.2.3",
- "gatsby-plugin-react-svg": "^3.3.0",
- "gatsby-plugin-sass": "^6.13.1",
- "gatsby-plugin-sharp": "^5.13.1",
- "gatsby-remark-copy-linked-files": "^6.13.1",
- "gatsby-remark-external-links": "^0.0.4",
- "gatsby-remark-images": "^7.13.1",
- "gatsby-remark-line-breaks": "^1.0.0",
- "gatsby-remark-relative-images": "^2.0.2",
- "gatsby-source-filesystem": "^5.13.1",
- "gatsby-transformer-remark": "^6.13.1",
- "gatsby-transformer-remark-frontmatter": "^1.1.0",
- "gatsby-transformer-sharp": "^5.13.1",
- "lodash": "^4.17.15",
- "lodash-webpack-plugin": "^0.11.4",
- "prop-types": "^15.6.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-helmet-async": "^2.0.5",
- "sass": "^1.43.2",
- "slugify": "^1.6.6",
- "uuid": "^8.0.0",
- "vitest": "^4.0.18"
- },
- "keywords": [
- "gatsby"
- ],
- "main": "n/a",
- "scripts": {
- "clean": "gatsby clean",
- "start": "npm run develop",
- "build": "npm run clean && gatsby build",
- "develop": "npm run clean && gatsby develop",
- "serve": "gatsby serve",
- "format": "prettier \"{src,gatsbyutils,netlify}/**/*.{ts,tsx,js,jsx}\" gatsby-*.js --write",
- "formatCheck": "prettier \"{src,gatsbyutils,netlify}/**/*.{ts,tsx,js,jsx}\" gatsby-*.js --check",
- "test": "vitest",
- "dev": "npx concurrently \"npx netlify-cms-proxy-server\" \"npm start -- --progress\""
- },
- "devDependencies": {
- "@trivago/prettier-plugin-sort-imports": "^6.0.2",
- "@types/antd": "^1.0.0",
- "@types/node": "^20.11.20",
- "@types/react": "^18.2.59",
- "@types/react-dom": "^18.2.19",
- "@types/react-helmet": "^6.1.11",
- "concurrently": "^9.2.1",
- "gatsby-plugin-postcss": "^6.13.1",
- "netlify-cli": "^17.15.7",
- "postcss": "^8.4.35",
- "prettier": "^3.8.1",
- "typescript": "^5.3.3",
- "typescript-plugin-css-modules": "^5.1.0"
- },
- "engines": {
- "node": ">= 18.15.0"
- }
-}
+ "name": "aics-idea-board",
+ "version": "0.0.2",
+ "author": "Megan Riel-Mehan",
+ "dependencies": {
+ "@ant-design/icons": "^5.5.1",
+ "@reach/router": "^1.3.4",
+ "antd": "^5.21.2",
+ "bulma": "^1.0.4",
+ "decap-cms-app": "^3.0.12",
+ "gatsby": "^5.14.0-next.3",
+ "gatsby-plugin-decap-cms": "^4.0.3",
+ "gatsby-plugin-fix-fouc": "^1.1.3",
+ "gatsby-plugin-image": "^3.13.1",
+ "gatsby-plugin-netlify": "^5.0.0",
+ "gatsby-plugin-purgecss": "^6.0.0",
+ "gatsby-plugin-react-helmet-async": "^1.2.3",
+ "gatsby-plugin-react-svg": "^3.3.0",
+ "gatsby-plugin-sass": "^6.13.1",
+ "gatsby-plugin-sharp": "^5.13.1",
+ "gatsby-remark-copy-linked-files": "^6.13.1",
+ "gatsby-remark-external-links": "^0.0.4",
+ "gatsby-remark-images": "^7.13.1",
+ "gatsby-remark-line-breaks": "^1.0.0",
+ "gatsby-remark-relative-images": "^2.0.2",
+ "gatsby-source-filesystem": "^5.13.1",
+ "gatsby-transformer-remark": "^6.13.1",
+ "gatsby-transformer-remark-frontmatter": "^1.1.0",
+ "gatsby-transformer-sharp": "^5.13.1",
+ "lodash": "^4.17.15",
+ "lodash-webpack-plugin": "^0.11.4",
+ "prop-types": "^15.6.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-helmet-async": "^2.0.5",
+ "sass": "^1.43.2",
+ "slugify": "^1.6.6",
+ "uuid": "^8.0.0",
+ "vitest": "^4.0.18"
+ },
+ "keywords": [
+ "gatsby"
+ ],
+ "main": "n/a",
+ "scripts": {
+ "clean": "gatsby clean",
+ "start": "npm run develop",
+ "build": "npm run clean && gatsby build",
+ "develop": "npm run clean && gatsby develop",
+ "serve": "gatsby serve",
+ "format": "prettier \"{src,gatsbyutils,netlify}/**/*.{ts,tsx,js,jsx}\" gatsby-*.js --write",
+ "formatCheck": "prettier \"{src,gatsbyutils,netlify}/**/*.{ts,tsx,js,jsx}\" gatsby-*.js --check",
+ "test": "vitest",
+ "dev": "npx concurrently \"npx netlify-cms-proxy-server\" \"npm start -- --progress\"",
+ "lint": "eslint \"src/**/*.{ts,tsx}\" --quiet --fix"
+ },
+ "devDependencies": {
+ "@eslint/js": "^10.0.1",
+ "@trivago/prettier-plugin-sort-imports": "^6.0.2",
+ "@types/antd": "^1.0.0",
+ "@types/node": "^20.11.20",
+ "@types/react": "^18.2.59",
+ "@types/react-dom": "^18.2.19",
+ "@types/react-helmet": "^6.1.11",
+ "concurrently": "^9.2.1",
+ "eslint": "^9.38.0",
+ "eslint-plugin-sort-destructure-keys": "^3.0.0",
+ "gatsby-plugin-postcss": "^6.13.1",
+ "jiti": "^2.6.1",
+ "netlify-cli": "^17.15.7",
+ "postcss": "^8.4.35",
+ "prettier": "^3.8.1",
+ "typescript": "^5.3.3",
+ "typescript-eslint": "^8.56.0",
+ "typescript-plugin-css-modules": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 18.15.0"
+ }
+}
\ No newline at end of file
diff --git a/src/cms/cms.js b/src/cms/cms.js
index 3bf5c25..2906919 100644
--- a/src/cms/cms.js
+++ b/src/cms/cms.js
@@ -1,9 +1,9 @@
-import CMS from 'decap-cms-app'
+import CMS from "decap-cms-app";
-import AboutPagePreview from './preview-templates/AboutPagePreview'
-import IdeaPostPreview from './preview-templates/IdeaPostPreview'
-import IndexPagePreview from './preview-templates/IndexPagePreview'
+import AboutPagePreview from "./preview-templates/AboutPagePreview";
+import IdeaPostPreview from "./preview-templates/IdeaPostPreview";
+import IndexPagePreview from "./preview-templates/IndexPagePreview";
-CMS.registerPreviewTemplate('index', IndexPagePreview)
-CMS.registerPreviewTemplate('about', AboutPagePreview)
-CMS.registerPreviewTemplate('idea', IdeaPostPreview)
+CMS.registerPreviewTemplate("index", IndexPagePreview);
+CMS.registerPreviewTemplate("about", AboutPagePreview);
+CMS.registerPreviewTemplate("idea", IdeaPostPreview);
diff --git a/src/cms/preview-templates/IdeaPostPreview.js b/src/cms/preview-templates/IdeaPostPreview.js
index 8bcc83f..d3d3517 100644
--- a/src/cms/preview-templates/IdeaPostPreview.js
+++ b/src/cms/preview-templates/IdeaPostPreview.js
@@ -5,22 +5,22 @@ import PropTypes from "prop-types";
import { IdeaPostTemplate } from "../../templates/idea-post";
const IdeaPostPreview = ({ entry, widgetFor }) => {
- const tags = entry.getIn(['data', 'tags'])
- return (
-
- )
-}
+ const tags = entry.getIn(["data", "tags"]);
+ return (
+
+ );
+};
IdeaPostPreview.propTypes = {
- entry: PropTypes.shape({
- getIn: PropTypes.func,
- }),
- widgetFor: PropTypes.func,
-}
+ entry: PropTypes.shape({
+ getIn: PropTypes.func,
+ }),
+ widgetFor: PropTypes.func,
+};
-export default IdeaPostPreview
+export default IdeaPostPreview;
diff --git a/src/components/Content.tsx b/src/components/Content.tsx
index 268aa3f..638012b 100644
--- a/src/components/Content.tsx
+++ b/src/components/Content.tsx
@@ -10,11 +10,11 @@ interface ContentProps {
className?: string;
}
-export const HTMLContent = ({ content, className }: HTMLContentProps) => (
+export const HTMLContent = ({ className, content }: HTMLContentProps) => (
);
-const Content = ({ content, className }: ContentProps) => (
+const Content = ({ className, content }: ContentProps) => (
{content}
);
diff --git a/src/components/FullWidthImage.tsx b/src/components/FullWidthImage.tsx
index 50de2eb..9d5a86b 100644
--- a/src/components/FullWidthImage.tsx
+++ b/src/components/FullWidthImage.tsx
@@ -11,11 +11,11 @@ interface FullWidthImageProps {
}
const FullWidthImage: React.FC = ({
- img,
- title,
height = 200,
- subheading,
+ img,
imgPosition = "top left",
+ subheading,
+ title,
}) => {
return (
diff --git a/src/components/IdeaRoll.tsx b/src/components/IdeaRoll.tsx
index 5ba8143..8e6ad93 100644
--- a/src/components/IdeaRoll.tsx
+++ b/src/components/IdeaRoll.tsx
@@ -4,7 +4,7 @@ import { Link, StaticQuery, graphql } from "gatsby";
import { MessageOutlined, StarOutlined } from "@ant-design/icons";
import { useLocation } from "@reach/router";
-import { Avatar, List, Space, Tag } from "antd";
+import { Avatar, List, Space } from "antd";
import { MaterialsAndMethods } from "../types";
import { IconText } from "./IconText";
@@ -192,9 +192,7 @@ export default function IdeaRoll({
}
}
`}
- render={(data: any) => (
-
- )}
+ render={(data) => }
/>
);
}
diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx
index 719a253..4115946 100644
--- a/src/components/Layout.tsx
+++ b/src/components/Layout.tsx
@@ -14,7 +14,7 @@ const { Content } = AntLayout;
const { container } = require("../style/layout.module.css");
const TemplateWrapper = ({ children }: React.PropsWithChildren) => {
- const { title, description } = useSiteMetadata();
+ const { description, title } = useSiteMetadata();
return (
diff --git a/src/components/MaterialsAndMethods.tsx b/src/components/MaterialsAndMethods.tsx
index 4ea538a..cadac25 100644
--- a/src/components/MaterialsAndMethods.tsx
+++ b/src/components/MaterialsAndMethods.tsx
@@ -10,8 +10,8 @@ const { section, sectionTitle } = require("../style/idea-post.module.css");
const { subText } = require("../style/materials.module.css");
export const MaterialsAndMethodsComponent: React.FC = ({
- dataset,
cellLines,
+ dataset,
protocols,
software,
}) => {
@@ -29,7 +29,7 @@ export const MaterialsAndMethodsComponent: React.FC = ({
};
const getSoftwareToolRender = (software: SoftwareTool, index: number) => {
- const { name, description, link } =
+ const { description, link, name } =
software.softwareTool?.frontmatter ?? {};
const displayDescription = software.customDescription ?? description;
diff --git a/src/components/PreviewCompatibleImage.tsx b/src/components/PreviewCompatibleImage.tsx
index 56b92bc..21e0ba4 100644
--- a/src/components/PreviewCompatibleImage.tsx
+++ b/src/components/PreviewCompatibleImage.tsx
@@ -2,10 +2,13 @@ import * as React from "react";
import { GatsbyImage } from "gatsby-plugin-image";
+import { ChildImageSharp } from "../types";
+
interface PreviewCompatibleImageProps {
imageInfo: {
alt?: string;
- childImageSharp?: any;
+ childImageSharp?: ChildImageSharp;
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any TODO: Replace `any` with a more specific type if possible
image: any;
width?: number;
height?: number;
@@ -26,7 +29,7 @@ const PreviewCompatibleImage = ({
alt={alt}
/>
);
- } else if (!!childImageSharp) {
+ } else if (childImageSharp) {
return (
= ({ tag, currentSlug }) => {
+export const TagPopover: React.FC = ({ currentSlug, tag }) => {
const data: Queries.AllIdeasForTagsQuery = useStaticQuery(graphql`
query AllIdeasForTags {
allMarkdownRemark(
diff --git a/src/pages/tags/index.js b/src/pages/tags/index.js
index ed4cc77..4c71081 100644
--- a/src/pages/tags/index.js
+++ b/src/pages/tags/index.js
@@ -8,12 +8,12 @@ import { kebabCase } from "lodash";
import Layout from "../../components/Layout";
const TagsPage = ({
- data: {
- allMarkdownRemark: { group },
- site: {
- siteMetadata: { title },
+ data: {
+ allMarkdownRemark: { group },
+ site: {
+ siteMetadata: { title },
+ },
},
- },
}) => (
@@ -45,23 +45,23 @@ const TagsPage = ({
);
-export default TagsPage
+export default TagsPage;
export const tagPageQuery = graphql`
- query TagsQuery {
- site {
- siteMetadata {
- title
- }
+ query TagsQuery {
+ site {
+ siteMetadata {
+ title
+ }
+ }
+ allMarkdownRemark(
+ limit: 1000
+ filter: { frontmatter: { draft: { ne: true } } }
+ ) {
+ group(field: frontmatter___tags) {
+ fieldValue
+ totalCount
+ }
+ }
}
- allMarkdownRemark(
- limit: 1000
- filter: { frontmatter: { draft: { ne: true } } }
- ) {
- group(field: frontmatter___tags) {
- fieldValue
- totalCount
- }
- }
- }
-`
+`;
diff --git a/src/templates/about-page.tsx b/src/templates/about-page.tsx
index 767a660..df89097 100644
--- a/src/templates/about-page.tsx
+++ b/src/templates/about-page.tsx
@@ -25,9 +25,9 @@ interface AboutPageTemplateProps {
}
export const AboutPageTemplate = ({
- title,
content,
contentComponent,
+ title,
}: AboutPageTemplateProps) => {
const PageContent = contentComponent || Content;
diff --git a/src/templates/allenite.tsx b/src/templates/allenite.tsx
index 1839f9b..fda1a05 100644
--- a/src/templates/allenite.tsx
+++ b/src/templates/allenite.tsx
@@ -26,9 +26,9 @@ interface AlleniteTemplateProps {
}
export const AlleniteTemplate = ({
+ contact,
name,
title,
- contact,
}: AlleniteTemplateProps) => {
return (
diff --git a/src/templates/dataset.tsx b/src/templates/dataset.tsx
index c5f5a63..2934e83 100644
--- a/src/templates/dataset.tsx
+++ b/src/templates/dataset.tsx
@@ -26,12 +26,7 @@ type DatasetProps = {
date?: string;
};
-const DatasetTemplate: React.FC
= ({
- name,
- description,
- link,
- status,
-}) => {
+const DatasetTemplate: React.FC = ({ name }) => {
return (
{name}
diff --git a/src/templates/idea-post.tsx b/src/templates/idea-post.tsx
index e7e0012..5aada38 100644
--- a/src/templates/idea-post.tsx
+++ b/src/templates/idea-post.tsx
@@ -19,19 +19,19 @@ import { IdeaFields, IdeaFrontmatter, IdeaPostQuery } from "../types";
const Header = AntdLayout.Header;
const {
+ actionIcons,
+ card,
+ proposal,
section,
sectionTitle,
taglist,
- proposal,
- card,
- actionIcons,
} = require("../style/idea-post.module.css");
export const IdeaPostTemplate: React.FC
= ({
+ materialsAndMethods,
slug,
tags,
title,
- materialsAndMethods,
}) => {
// TODO query the actual data
const introduction = "PLACEHOLDER INTRODUCTION TEXT";
@@ -105,7 +105,7 @@ const IdeaPost: React.FC> = ({ data }) => {
);
}
- const { title, description } = markdownRemark.frontmatter;
+ const { description, title } = markdownRemark.frontmatter;
return (
diff --git a/src/templates/index-page.tsx b/src/templates/index-page.tsx
index d412a1e..019a85a 100644
--- a/src/templates/index-page.tsx
+++ b/src/templates/index-page.tsx
@@ -1,9 +1,8 @@
import React from "react";
-import { Link, graphql } from "gatsby";
+import { graphql } from "gatsby";
import { getImage } from "gatsby-plugin-image";
-import { Layout as AntdLayout, Flex } from "antd";
import PropTypes from "prop-types";
import FullWidthImage from "../components/FullWidthImage";
@@ -21,7 +20,8 @@ interface QueryResult {
markdownRemark: {
frontmatter: {
title: string;
- image: any; // Replace `any` with a more specific type if possible
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ image: any; // TODO: Replace `any` with a more specific type if possible
heading: string;
subheading: string;
mainpitch: MainPitch;
@@ -37,6 +37,7 @@ interface MainPitch {
}
interface IndexPageTemplateProps {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
image: any; // Replace `any` with a more specific type if possible
title: string;
heading: string;
@@ -46,12 +47,12 @@ interface IndexPageTemplateProps {
}
export const IndexPageTemplate: React.FC = ({
- image,
- title,
+ description,
heading,
- subheading,
+ image,
mainpitch,
- description,
+ subheading,
+ title,
}) => {
const heroImage = getImage(image) || image;
diff --git a/src/templates/program.tsx b/src/templates/program.tsx
index 60ccb14..8ca48bd 100644
--- a/src/templates/program.tsx
+++ b/src/templates/program.tsx
@@ -25,11 +25,7 @@ interface ProgramTemplateProps {
active: boolean;
}
-export const ProgramTemplate = ({
- name,
- description,
- image,
-}: ProgramTemplateProps) => {
+export const ProgramTemplate = ({ name }: ProgramTemplateProps) => {
return (
{name}
diff --git a/src/types/index.ts b/src/types/index.ts
index 3f91025..a6cbfd2 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -1,3 +1,5 @@
+import { IGatsbyImageData } from "gatsby-plugin-image";
+
/**
* Types are derived from the schema customization in gatsby-node.js
* and generated by running `gatsby develop` after editing the schema.
@@ -23,3 +25,11 @@ export type SoftwareTool = MaterialsAndMethods["software"][number];
export type IdeasForTags =
Queries.AllIdeasForTagsQuery["allMarkdownRemark"]["edges"];
+
+/**
+ * Other utility types
+ */
+
+export interface ChildImageSharp {
+ gatsbyImageData: IGatsbyImageData;
+}
diff --git a/yarn.lock b/yarn.lock
index a039918..f7474f8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1897,11 +1897,46 @@
dependencies:
eslint-visitor-keys "^3.4.3"
+"@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1":
+ version "4.9.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595"
+ integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==
+ dependencies:
+ eslint-visitor-keys "^3.4.3"
+
+"@eslint-community/regexpp@^4.12.1", "@eslint-community/regexpp@^4.12.2":
+ version "4.12.2"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b"
+ integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
+
"@eslint-community/regexpp@^4.4.0":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+"@eslint/config-array@^0.21.1":
+ version "0.21.1"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713"
+ integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==
+ dependencies:
+ "@eslint/object-schema" "^2.1.7"
+ debug "^4.3.1"
+ minimatch "^3.1.2"
+
+"@eslint/config-helpers@^0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda"
+ integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==
+ dependencies:
+ "@eslint/core" "^0.17.0"
+
+"@eslint/core@^0.17.0":
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c"
+ integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==
+ dependencies:
+ "@types/json-schema" "^7.0.15"
+
"@eslint/eslintrc@^0.4.3":
version "0.4.3"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@@ -1917,6 +1952,44 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@eslint/eslintrc@^3.3.1":
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac"
+ integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^10.0.1"
+ globals "^14.0.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.1"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@eslint/js@9.39.3":
+ version "9.39.3"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.3.tgz#c6168736c7e0c43ead49654ed06a4bcb3833363d"
+ integrity sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==
+
+"@eslint/js@^10.0.1":
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-10.0.1.tgz#1e8a876f50117af8ab67e47d5ad94d38d6622583"
+ integrity sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==
+
+"@eslint/object-schema@^2.1.7":
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad"
+ integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==
+
+"@eslint/plugin-kit@^0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2"
+ integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==
+ dependencies:
+ "@eslint/core" "^0.17.0"
+ levn "^0.4.1"
+
"@fastify/accept-negotiator@^1.0.0", "@fastify/accept-negotiator@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz#c1c66b3b771c09742a54dd5bc87c582f6b0630ff"
@@ -2188,6 +2261,19 @@
dependencies:
"@hapi/hoek" "^9.0.0"
+"@humanfs/core@^0.19.1":
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
+ integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
+
+"@humanfs/node@^0.16.6":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz#822cb7b3a12c5a240a24f621b5a2413e27a45f26"
+ integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==
+ dependencies:
+ "@humanfs/core" "^0.19.1"
+ "@humanwhocodes/retry" "^0.4.0"
+
"@humanwhocodes/config-array@^0.5.0":
version "0.5.0"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
@@ -2197,6 +2283,11 @@
debug "^4.1.1"
minimatch "^3.0.4"
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
"@humanwhocodes/momoa@^2.0.2":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385"
@@ -2207,6 +2298,11 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
+ integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
+
"@iarna/toml@2.2.5", "@iarna/toml@^2.2.5":
version "2.2.5"
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
@@ -4089,7 +4185,7 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@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":
+"@types/json-schema@*", "@types/json-schema@^7.0.15", "@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.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
@@ -4296,6 +4392,20 @@
resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.7.tgz#114e2ffc8d5be4915fdd5bc90668fc0ceaadb760"
integrity sha512-LKzNTjj+2j09wAo/vvVjzgw5qckJJzhdGgWHW7j69QIGdq/KnZrMAMIHQiWGl3Ccflh5/CudBAntTPYdprPltA==
+"@typescript-eslint/eslint-plugin@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz#5aec3db807a6b8437ea5d5ebf7bd16b4119aba8d"
+ integrity sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==
+ dependencies:
+ "@eslint-community/regexpp" "^4.12.2"
+ "@typescript-eslint/scope-manager" "8.56.0"
+ "@typescript-eslint/type-utils" "8.56.0"
+ "@typescript-eslint/utils" "8.56.0"
+ "@typescript-eslint/visitor-keys" "8.56.0"
+ ignore "^7.0.5"
+ natural-compare "^1.4.0"
+ ts-api-utils "^2.4.0"
+
"@typescript-eslint/eslint-plugin@^5.60.1":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
@@ -4312,6 +4422,17 @@
semver "^7.3.7"
tsutils "^3.21.0"
+"@typescript-eslint/parser@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.56.0.tgz#8ecff1678b8b1a742d29c446ccf5eeea7f971d72"
+ integrity sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "8.56.0"
+ "@typescript-eslint/types" "8.56.0"
+ "@typescript-eslint/typescript-estree" "8.56.0"
+ "@typescript-eslint/visitor-keys" "8.56.0"
+ debug "^4.4.3"
+
"@typescript-eslint/parser@^5.60.1":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
@@ -4322,6 +4443,15 @@
"@typescript-eslint/typescript-estree" "5.62.0"
debug "^4.3.4"
+"@typescript-eslint/project-service@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.56.0.tgz#bb8562fecd8f7922e676fc6a1189c20dd7991d73"
+ integrity sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==
+ dependencies:
+ "@typescript-eslint/tsconfig-utils" "^8.56.0"
+ "@typescript-eslint/types" "^8.56.0"
+ debug "^4.4.3"
+
"@typescript-eslint/scope-manager@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
@@ -4330,6 +4460,19 @@
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/visitor-keys" "5.62.0"
+"@typescript-eslint/scope-manager@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz#604030a4c6433df3728effdd441d47f45a86edb4"
+ integrity sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==
+ dependencies:
+ "@typescript-eslint/types" "8.56.0"
+ "@typescript-eslint/visitor-keys" "8.56.0"
+
+"@typescript-eslint/tsconfig-utils@8.56.0", "@typescript-eslint/tsconfig-utils@^8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz#2538ce83cbc376e685487960cbb24b65fe2abc4e"
+ integrity sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==
+
"@typescript-eslint/type-utils@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
@@ -4340,11 +4483,27 @@
debug "^4.3.4"
tsutils "^3.21.0"
+"@typescript-eslint/type-utils@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz#72b4edc1fc73988998f1632b3ec99c2a66eaac6e"
+ integrity sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==
+ dependencies:
+ "@typescript-eslint/types" "8.56.0"
+ "@typescript-eslint/typescript-estree" "8.56.0"
+ "@typescript-eslint/utils" "8.56.0"
+ debug "^4.4.3"
+ ts-api-utils "^2.4.0"
+
"@typescript-eslint/types@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+"@typescript-eslint/types@8.56.0", "@typescript-eslint/types@^8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.56.0.tgz#a2444011b9a98ca13d70411d2cbfed5443b3526a"
+ integrity sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==
+
"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@^5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
@@ -4358,6 +4517,21 @@
semver "^7.3.7"
tsutils "^3.21.0"
+"@typescript-eslint/typescript-estree@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz#fadbc74c14c5bac947db04980ff58bb178701c2e"
+ integrity sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==
+ dependencies:
+ "@typescript-eslint/project-service" "8.56.0"
+ "@typescript-eslint/tsconfig-utils" "8.56.0"
+ "@typescript-eslint/types" "8.56.0"
+ "@typescript-eslint/visitor-keys" "8.56.0"
+ debug "^4.4.3"
+ minimatch "^9.0.5"
+ semver "^7.7.3"
+ tinyglobby "^0.2.15"
+ ts-api-utils "^2.4.0"
+
"@typescript-eslint/utils@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
@@ -4372,6 +4546,16 @@
eslint-scope "^5.1.1"
semver "^7.3.7"
+"@typescript-eslint/utils@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.56.0.tgz#063ce6f702ec603de1b83ee795ed5e877d6f7841"
+ integrity sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.9.1"
+ "@typescript-eslint/scope-manager" "8.56.0"
+ "@typescript-eslint/types" "8.56.0"
+ "@typescript-eslint/typescript-estree" "8.56.0"
+
"@typescript-eslint/visitor-keys@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
@@ -4380,6 +4564,14 @@
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
+"@typescript-eslint/visitor-keys@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz#7d6592ab001827d3ce052155edf7ecad19688d7d"
+ integrity sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==
+ dependencies:
+ "@typescript-eslint/types" "8.56.0"
+ eslint-visitor-keys "^5.0.0"
+
"@vercel/nft@0.27.7":
version "0.27.7"
resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.27.7.tgz#92e27ef1860f1a1d1838b76098996aae165d9b98"
@@ -4723,7 +4915,7 @@ acorn-import-attributes@^1.9.5:
resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==
-acorn-jsx@^5.3.1:
+acorn-jsx@^5.3.1, acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
@@ -4757,6 +4949,11 @@ acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.2:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
+acorn@^8.15.0:
+ version "8.16.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
+ integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
+
address@1.2.2, address@^1.0.1, address@^1.1.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e"
@@ -7390,6 +7587,13 @@ debug@^3.0.1, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7:
dependencies:
ms "^2.1.1"
+debug@^4.4.3:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
+ integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
+ dependencies:
+ ms "^2.1.3"
+
decache@4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.2.tgz#c1df1325a2f36d53922e08f33380f083148199cd"
@@ -8824,6 +9028,13 @@ eslint-plugin-react@^7.32.2:
string.prototype.matchall "^4.0.12"
string.prototype.repeat "^1.0.0"
+eslint-plugin-sort-destructure-keys@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-sort-destructure-keys/-/eslint-plugin-sort-destructure-keys-3.0.0.tgz#0bd6ac30cdaf3b2c4c02c9c5e4ab4c48adfde67a"
+ integrity sha512-ian2KEdGi8xZW50SVz9HIP9PDQN4XWeo3Hax3LsDk0ojL+wrwk40az8bKCnt3q2J7I3q5xF2ncZ0arj2q8Ou+A==
+ dependencies:
+ natural-compare-lite "^1.4.0"
+
eslint-scope@5.1.1, eslint-scope@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
@@ -8832,6 +9043,14 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1:
esrecurse "^4.3.0"
estraverse "^4.1.1"
+eslint-scope@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
+ integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
eslint-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
@@ -8854,6 +9073,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+eslint-visitor-keys@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
+ integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
+
+eslint-visitor-keys@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be"
+ integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==
+
eslint-webpack-plugin@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz#0525793a4f8c652c1c6d863995ce1e0f2dcbd143"
@@ -8912,6 +9141,46 @@ eslint@^7.32.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
+eslint@^9.38.0:
+ version "9.39.3"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.3.tgz#08d63df1533d7743c0907b32a79a7e134e63ee2f"
+ integrity sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.8.0"
+ "@eslint-community/regexpp" "^4.12.1"
+ "@eslint/config-array" "^0.21.1"
+ "@eslint/config-helpers" "^0.4.2"
+ "@eslint/core" "^0.17.0"
+ "@eslint/eslintrc" "^3.3.1"
+ "@eslint/js" "9.39.3"
+ "@eslint/plugin-kit" "^0.4.1"
+ "@humanfs/node" "^0.16.6"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@humanwhocodes/retry" "^0.4.2"
+ "@types/estree" "^1.0.6"
+ ajv "^6.12.4"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.6"
+ debug "^4.3.2"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^8.4.0"
+ eslint-visitor-keys "^4.2.1"
+ espree "^10.4.0"
+ esquery "^1.5.0"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^8.0.0"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+
esniff@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
@@ -8922,6 +9191,15 @@ esniff@^2.0.1:
event-emitter "^0.3.5"
type "^2.7.2"
+espree@^10.0.1, espree@^10.4.0:
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
+ integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
+ dependencies:
+ acorn "^8.15.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^4.2.1"
+
espree@^7.3.0, espree@^7.3.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
@@ -8943,6 +9221,13 @@ esquery@^1.4.0:
dependencies:
estraverse "^5.1.0"
+esquery@^1.5.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d"
+ integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==
+ dependencies:
+ estraverse "^5.1.0"
+
esrecurse@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
@@ -9430,6 +9715,13 @@ file-entry-cache@^6.0.1:
dependencies:
flat-cache "^3.0.4"
+file-entry-cache@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
+ integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
+ dependencies:
+ flat-cache "^4.0.0"
+
file-loader@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
@@ -9606,6 +9898,14 @@ flat-cache@^3.0.4:
keyv "^4.5.3"
rimraf "^3.0.2"
+flat-cache@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
+ integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
+ dependencies:
+ flatted "^3.2.9"
+ keyv "^4.5.4"
+
flat@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
@@ -10579,6 +10879,13 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2:
dependencies:
is-glob "^4.0.1"
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
glob-to-regexp@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
@@ -10662,6 +10969,11 @@ globals@^13.2.0, globals@^13.6.0, globals@^13.9.0:
dependencies:
type-fest "^0.20.2"
+globals@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
+ integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
+
globalthis@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
@@ -11343,6 +11655,11 @@ ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+ignore@^7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
+ integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
+
image-meta@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/image-meta/-/image-meta-0.2.1.tgz#3a9eb9f0bfd2f767ca2b0720623c2e03742aa29f"
@@ -12213,6 +12530,11 @@ jiti@^2.1.2:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.4.2.tgz#d19b7732ebb6116b06e2038da74a55366faef560"
integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==
+jiti@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92"
+ integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==
+
joi@^17.11.0, joi@^17.9.2:
version "17.13.3"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec"
@@ -12259,6 +12581,13 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
+ integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
+ dependencies:
+ argparse "^2.0.1"
+
jsesc@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
@@ -12426,7 +12755,7 @@ keep-func-props@^4.0.0:
dependencies:
mimic-fn "^4.0.0"
-keyv@^4.0.0, keyv@^4.5.3:
+keyv@^4.0.0, keyv@^4.5.3, keyv@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
@@ -13634,7 +13963,7 @@ minimatch@^5.0.1, minimatch@^5.1.0:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^9.0.0, minimatch@^9.0.4:
+minimatch@^9.0.0, minimatch@^9.0.4, minimatch@^9.0.5:
version "9.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@@ -14471,7 +14800,7 @@ optimism@^0.10.0:
dependencies:
"@wry/context" "^0.4.0"
-optionator@^0.9.1:
+optionator@^0.9.1, optionator@^0.9.3:
version "0.9.4"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
@@ -17480,6 +17809,11 @@ semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
+semver@^7.7.3:
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a"
+ integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==
+
send@0.19.0:
version "0.19.0"
resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
@@ -18943,6 +19277,11 @@ truncate-utf8-bytes@^1.0.0:
dependencies:
utf8-byte-length "^1.0.1"
+ts-api-utils@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8"
+ integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==
+
ts-invariant@^0.4.0:
version "0.4.4"
resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86"
@@ -19143,6 +19482,16 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+typescript-eslint@^8.56.0:
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.56.0.tgz#f4686ccaaf2fb86daf0133820da40ca5961a2236"
+ integrity sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==
+ dependencies:
+ "@typescript-eslint/eslint-plugin" "8.56.0"
+ "@typescript-eslint/parser" "8.56.0"
+ "@typescript-eslint/typescript-estree" "8.56.0"
+ "@typescript-eslint/utils" "8.56.0"
+
typescript-plugin-css-modules@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/typescript-plugin-css-modules/-/typescript-plugin-css-modules-5.1.0.tgz#faa0ceffe8a8ffcbbc2f77ed637a64464195044a"