From 97e22c1aa5f9bc9263c03e26741b1e0dfae049b8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 25 Apr 2024 20:42:14 -0500 Subject: [PATCH 001/259] mdx and import ordering --- src/components/headerBody/index.js | 8 +-- src/components/mdxWrapper.js | 81 ++++++++++++++++++++-------- src/components/partial.js | 12 +---- src/layout/GuideLayout/index.js | 3 +- src/layout/header/index.js | 2 - src/layout/layout/index.js | 7 +-- src/pages/glossary.js | 4 +- src/pages/search.js | 3 +- src/templates/certificationpage.js | 59 ++++----------------- src/templates/doc.js | 64 ++--------------------- src/templates/guide.js | 84 ++++++------------------------ src/templates/resource.js | 53 ++----------------- src/templates/terminusCommand.js | 48 ++--------------- src/templates/terminuspage.js | 60 ++++----------------- src/templates/video.js | 50 +----------------- 15 files changed, 123 insertions(+), 415 deletions(-) diff --git a/src/components/headerBody/index.js b/src/components/headerBody/index.js index 99b2a79081..e630e17e4a 100644 --- a/src/components/headerBody/index.js +++ b/src/components/headerBody/index.js @@ -2,12 +2,10 @@ import React from "react" import Contributors from "../contributors" import Github from "../github" -import Twitter from "../twitter" import Slack from "../slack" -import Discourse from "../discourse" import ContributorGuest from "../contributorGuest" -import { StatusBadge } from "@pantheon-systems/pds-toolkit-react" +import { Badge } from "@pantheon-systems/pds-toolkit-react" import "./style.css" @@ -19,9 +17,7 @@ const HeaderBody = ({ contributors, featured, editPath, - reviewDate, - isoDate, - cms, + reviewDate }) => { const contributor = contributors ? contributors[0] : null const lastReviewed = reviewDate ? "Last Reviewed: " + reviewDate : null diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index fdef6ab4d5..51d495c6d5 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -1,45 +1,82 @@ import React from "react" import { MDXRenderer } from "gatsby-plugin-mdx" import { MDXProvider } from "@mdx-js/react" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" +import Callout from "./callout" +import Alert from "./alert" +import Accordion from "./accordion" +import BuildTools from "./buildTools.js" +import BuildToolsChangelog from "./buildToolsChangelog.js" +import ResourceSelector from "./resourceSelector" +import DrushChangelog from "./drushChangelog" +import DNSProviderDocs from "./dns-provider-docs.js" +import LocaldevChangelog from "./localdevChangelog" +import Example from "./styleExample" +import ExternalLink from "./externalLink" +import Popover from "./popover" +import Image from "../layout/image" +import TabList from "./tabList" +import Tab from "./tab" +import Card from "./card" +import CardGroup from "./cardGroup" +import Enablement from "./enablement" +import Color from "./color.js" +import Download from "./download" +import Icon from "./icon" +import Releases from "./releases" +import TerminusVersion from "./terminusVersion" +import Commands from "./commands" +import ReviewDate from "./reviewDate" +import Check from "./check.js" +import Partial from "./partial" +import Product from "./product" +import ProductGroup from "./productGroup" +import Youtube from "./youtube" +import Wistia from "./wistia" import { headline2, headline3, headline4, -} from "../components/releaseHeadlines" +} from "./releaseHeadlines" + const shortcodes = { - Callout, - Alert, Accordion, - ExternalLink, - Popover, - TabList, - Tab, + Alert, + BuildTools, + BuildToolsChangelog, + Callout, Card, CardGroup, - Enablement, + Check, Color, + Commands, + DNSProviderDocs, Download, + DrushChangelog, + Enablement, + Example, + ExternalLink, + Icon, + Image, + LocaldevChangelog, + Partial, + Popover, + Product, + ProductGroup, + ResourceSelector, + Releases, + ReviewDate, + Tab, + TabList, + TerminusVersion, + Wistia, + Youtube, h1: headline2, h2: headline3, h3: headline4, } - - const MdxWrapper = ({ mdx }) => { return ( diff --git a/src/components/partial.js b/src/components/partial.js index 95663e02f6..e64e5854cb 100644 --- a/src/components/partial.js +++ b/src/components/partial.js @@ -1,12 +1,6 @@ import React from "react" import { StaticQuery, graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" -import Youtube from "../components/youtube" - -const shortcodes = { - Youtube, -} +import MdxWrapper from "../components/mdxWrapper" const Partial = props => ( ( return ( <> - - {mdx.node.body} - + ) }} diff --git a/src/layout/GuideLayout/index.js b/src/layout/GuideLayout/index.js index a329fafa0f..d1fb849dab 100644 --- a/src/layout/GuideLayout/index.js +++ b/src/layout/GuideLayout/index.js @@ -1,10 +1,11 @@ import React, { Components } from "react" +import "./style.css" import Header from "../header" import Footer from "../footer" import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" -import "./style.css" + const GuideLayout = ({ children, pageType = "default" }) => { // Establish slots for children. diff --git a/src/layout/header/index.js b/src/layout/header/index.js index 1fbb767ba5..89cf6f8d91 100644 --- a/src/layout/header/index.js +++ b/src/layout/header/index.js @@ -2,8 +2,6 @@ import React from "react" import { Link } from "gatsby" import { - Container, - InputText, Navbar, NavMenu, } from "@pantheon-systems/pds-toolkit-react" diff --git a/src/layout/layout/index.js b/src/layout/layout/index.js index 378814156a..b4f5c6f2cd 100644 --- a/src/layout/layout/index.js +++ b/src/layout/layout/index.js @@ -1,13 +1,10 @@ import React, { Components } from "react" +import "./style.css" import Header from "../header" +import { Container, CTASlice } from "@pantheon-systems/pds-toolkit-react" import Footer from "../footer" - import SearchBar from "../SearchBar" -import { Container, CTASlice } from "@pantheon-systems/pds-toolkit-react" - -import "./style.css" - // Content for CTA const primaryCTA = { text: "Learn Pantheon", diff --git a/src/pages/glossary.js b/src/pages/glossary.js index fad9603ec8..436fcd0e5e 100644 --- a/src/pages/glossary.js +++ b/src/pages/glossary.js @@ -1,8 +1,8 @@ import { Link, graphql } from "gatsby" -import HeaderBody from "../components/headerBody" import Layout from "../layout/layout" -import Popover from "../components/popover" +import HeaderBody from "../components/headerBody" + import React from "react" import SEO from "../layout/seo" import TOC from "../components/toc" diff --git a/src/pages/search.js b/src/pages/search.js index 2b4d54c61a..4edfc5f0b1 100644 --- a/src/pages/search.js +++ b/src/pages/search.js @@ -1,10 +1,11 @@ import React from "react" +import "./styles/search.css" import Layout from "../layout/layout" import SEO from "../layout/seo" import { Container } from "@pantheon-systems/pds-toolkit-react" -import "./styles/search.css" + class Search extends React.Component { componentDidMount() { diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 367a16613c..4b8524cd33 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -1,59 +1,18 @@ import React from "react" import { graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - +import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import GuideLayout from "../layout/GuideLayout" +import SEO from "../layout/seo" +import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Icon from "../components/icon" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" import GetFeedback from "../components/getFeedback" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import Navbar from "../components/navbar" import NavButtons from "../components/navButtons" -import SEO from "../layout/seo" -import Releases from "../components/releases" -import TerminusVersion from "../components/terminusVersion" -import Download from "../components/download" -import Commands from "../components/commands" -import ReviewDate from "../components/reviewDate" -import Check from "../components/check.js" -import Partial from "../components/partial" -import Youtube from "../components/youtube" -import SearchBar from "../layout/SearchBar" -import Wistia from "../components/wistia" +import TOC from "../components/toc" +import MdxWrapper from "../components/mdxWrapper" + -import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Icon, - Popover, - TabList, - Tab, - Card, - CardGroup, - Releases, - TerminusVersion, - Download, - Partial, - Commands, - ReviewDate, - Check, - Youtube, - Wistia, -} // @TODO relocate this list // - To a YAML file and use GraphQL to pull data. @@ -201,9 +160,9 @@ class CertificationTemplate extends React.Component { reviewDate={ifCommandsDate} isoDate={ifCommandsISO} /> - - {node.body} - + + +
- - {node.body} - + +
diff --git a/src/templates/guide.js b/src/templates/guide.js index 510f22bb76..1e96cec229 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -1,74 +1,20 @@ import React from "react" import { graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" import GuideLayout from "../layout/GuideLayout" +import SEO from "../layout/seo" + +import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Icon from "../components/icon" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" + import Navbar from "../components/navbar" + +import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" -import SEO from "../layout/seo" -import Releases from "../components/releases" -import TerminusVersion from "../components/terminusVersion" -import Commands from "../components/commands" -import GetFeedback from "../components/getFeedback" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" -import BuildTools from "../components/buildTools.js" -import BuildToolsChangelog from "../components/buildToolsChangelog.js" -import Partial from "../components/partial.js" -import Image from "../layout/image" -import ReviewDate from "../components/reviewDate" -import Youtube from "../components/youtube" -import ResourceSelector from "../components/resourceSelector" -import DNSProviderDocs from "../components/dns-provider-docs.js" -import Check from "../components/check.js" -import LocaldevChangelog from "../components/localdevChangelog" -import SearchBar from "../layout/SearchBar" -import Wistia from "../components/wistia" - -import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" - -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Icon, - Popover, - TabList, - Tab, - Card, - CardGroup, - Releases, - TerminusVersion, - Commands, - Enablement, - Download, - BuildTools, - BuildToolsChangelog, - Partial, - Image, - ReviewDate, - Youtube, - ResourceSelector, - DNSProviderDocs, - Check, - LocaldevChangelog, - Wistia, -} +import TOC from "../components/toc" +import MdxWrapper from "../components/mdxWrapper" + + class GuideTemplate extends React.Component { componentDidMount() { @@ -148,9 +94,13 @@ class GuideTemplate extends React.Component { reviewDate={node.frontmatter.reviewed} isoDate={isoDate.frontmatter.reviewed} /> - - {node.body} - + + + + + + +
- - {node.body} - + +
{/* */} diff --git a/src/templates/terminusCommand.js b/src/templates/terminusCommand.js index 5772db0e3c..0aa089262b 100644 --- a/src/templates/terminusCommand.js +++ b/src/templates/terminusCommand.js @@ -1,56 +1,18 @@ import React from "react" import { graphql, Link } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" import GuideLayout from "../layout/GuideLayout" +import SEO from "../layout/seo" +import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Icon from "../components/icon" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" import GetFeedback from "../components/getFeedback" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import Navbar from "../components/navbar" -import NavButtons from "../components/navButtons" -import SEO from "../layout/seo" -import Releases from "../components/releases" -import TerminusVersion from "../components/terminusVersion" -import Download from "../components/download" -import Commands from "../components/commands" + import Partial from "../components/partial" -import ReviewDate from "../components/reviewDate" -import Check from "../components/check.js" -import SearchBar from "../layout/SearchBar" -let commandsJson = require("../../source/data/commands.json") -import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" +let commandsJson = require("../../source/data/commands.json") -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Icon, - Popover, - TabList, - Tab, - Card, - CardGroup, - Releases, - TerminusVersion, - Download, - Commands, - ReviewDate, - Check, - Partial, -} +import { Container } from "@pantheon-systems/pds-toolkit-react" // @TODO relocate this list // - To a YAML file and use GraphQL to pull data. diff --git a/src/templates/terminuspage.js b/src/templates/terminuspage.js index aabd623d99..7b21104e88 100644 --- a/src/templates/terminuspage.js +++ b/src/templates/terminuspage.js @@ -1,57 +1,18 @@ import React from "react" import { graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - import GuideLayout from "../layout/GuideLayout" +import SEO from "../layout/seo" +import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Icon from "../components/icon" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" + +import Navbar from "../components/navbar" import TOC from "../components/toc" import GetFeedback from "../components/getFeedback" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" -import Navbar from "../components/navbar" -import NavButtons from "../components/navButtons" -import SEO from "../layout/seo" -import Releases from "../components/releases" -import TerminusVersion from "../components/terminusVersion" -import Download from "../components/download" -import Commands from "../components/commands" -import ReviewDate from "../components/reviewDate" -import Check from "../components/check.js" -import Partial from "../components/partial" -import SearchBar from "../layout/SearchBar" -import Wistia from "../components/wistia" -import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Icon, - Popover, - TabList, - Tab, - Card, - CardGroup, - Releases, - TerminusVersion, - Download, - Partial, - Commands, - ReviewDate, - Check, - Wistia, -} + +import MdxWrapper from "../components/mdxWrapper" +import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" // @TODO relocate this list // - To a YAML file and use GraphQL to pull data. @@ -205,9 +166,10 @@ class TerminusTemplate extends React.Component { reviewDate={ifCommandsDate} isoDate={ifCommandsISO} /> - - {node.body} - + + + + {hasTOC && } diff --git a/src/templates/video.js b/src/templates/video.js index 701c0f4f21..c82f136184 100644 --- a/src/templates/video.js +++ b/src/templates/video.js @@ -1,55 +1,11 @@ import React from "react" import { graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - import Layout from "../layout/layout" import HeaderBody from "../components/headerBody" - -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Icon from "../components/icon" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" -import GetFeedback from "../components/getFeedback" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import SEO from "../layout/seo" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" -import Partial from "../components/partial" -import Image from "../layout/image" -import Example from "../components/styleExample" -import Youtube from "../components/youtube" -import Wistia from "../components/wistia" - import { Container } from "@pantheon-systems/pds-toolkit-react" +import MdxWrapper from "../components/mdxWrapper" -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Icon, - Popover, - TabList, - Tab, - Card, - CardGroup, - Enablement, - Color, - Download, - Partial, - Image, - Example, - Youtube, - Wistia, -} // Set container width for search and main content. const containerWidth = "standard" @@ -104,9 +60,7 @@ class VideoTemplate extends React.Component { featured={node.frontmatter.featuredcontributor} />
- - {node.body} - +
From 9f34a0dabee50995f15de50b233048e11c0b1621 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 25 Apr 2024 20:59:04 -0500 Subject: [PATCH 002/259] Update index.js --- src/components/headerBody/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/headerBody/index.js b/src/components/headerBody/index.js index e630e17e4a..b39f6d36e7 100644 --- a/src/components/headerBody/index.js +++ b/src/components/headerBody/index.js @@ -4,8 +4,7 @@ import Contributors from "../contributors" import Github from "../github" import Slack from "../slack" import ContributorGuest from "../contributorGuest" - -import { Badge } from "@pantheon-systems/pds-toolkit-react" +import { StatusBadge } from "@pantheon-systems/pds-toolkit-react" import "./style.css" From b9008bd57368e637559694542052c956f4a2cc89 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 25 Apr 2024 21:06:49 -0500 Subject: [PATCH 003/259] whitespace fixes --- src/layout/GuideLayout/index.js | 3 --- src/pages/search.js | 3 --- src/templates/certificationpage.js | 3 --- src/templates/guide.js | 12 ------------ src/templates/terminusCommand.js | 4 ---- src/templates/terminuspage.js | 7 ------- 6 files changed, 32 deletions(-) diff --git a/src/layout/GuideLayout/index.js b/src/layout/GuideLayout/index.js index d1fb849dab..7da5ae2577 100644 --- a/src/layout/GuideLayout/index.js +++ b/src/layout/GuideLayout/index.js @@ -2,11 +2,8 @@ import React, { Components } from "react" import "./style.css" import Header from "../header" import Footer from "../footer" - import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" - - const GuideLayout = ({ children, pageType = "default" }) => { // Establish slots for children. const slots = {} diff --git a/src/pages/search.js b/src/pages/search.js index 4edfc5f0b1..a6400d2155 100644 --- a/src/pages/search.js +++ b/src/pages/search.js @@ -2,11 +2,8 @@ import React from "react" import "./styles/search.css" import Layout from "../layout/layout" import SEO from "../layout/seo" - import { Container } from "@pantheon-systems/pds-toolkit-react" - - class Search extends React.Component { componentDidMount() { //On page load... diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 4b8524cd33..be8c40999d 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -11,9 +11,6 @@ import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" - - - // @TODO relocate this list // - To a YAML file and use GraphQL to pull data. // - To a GraphQL query order by frontmatter weight/order/index field. diff --git a/src/templates/guide.js b/src/templates/guide.js index 1e96cec229..78631d1494 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -1,21 +1,15 @@ import React from "react" import { graphql } from "gatsby" - import GuideLayout from "../layout/GuideLayout" import SEO from "../layout/seo" - import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" - import Navbar from "../components/navbar" - import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" - - class GuideTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ @@ -94,13 +88,7 @@ class GuideTemplate extends React.Component { reviewDate={node.frontmatter.reviewed} isoDate={isoDate.frontmatter.reviewed} /> - - - - - - - - Back to all commands diff --git a/src/templates/terminuspage.js b/src/templates/terminuspage.js index 7b21104e88..a9b34787d9 100644 --- a/src/templates/terminuspage.js +++ b/src/templates/terminuspage.js @@ -4,13 +4,10 @@ import GuideLayout from "../layout/GuideLayout" import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" - import Navbar from "../components/navbar" import TOC from "../components/toc" import GetFeedback from "../components/getFeedback" - - import MdxWrapper from "../components/mdxWrapper" import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" @@ -166,15 +163,11 @@ class TerminusTemplate extends React.Component { reviewDate={ifCommandsDate} isoDate={ifCommandsISO} /> - - - {hasTOC && } - ) From 5b9f380b6b346841086bbf58bb47bea34da207ed Mon Sep 17 00:00:00 2001 From: Rachel Date: Thu, 9 May 2024 12:59:37 -0500 Subject: [PATCH 004/259] BackstopJS init for local VRT (#8989) --- .gitignore | 3 + README.md | 18 + backstop.json | 82 ++ package-lock.json | 2120 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + 5 files changed, 2133 insertions(+), 91 deletions(-) create mode 100644 backstop.json diff --git a/.gitignore b/.gitignore index 0b2d05fcb5..495653f35a 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,6 @@ yarn-error.log /.env.production /.idea /.envrc + +# Backstop dependencies and artifacts +/backstop_data/ diff --git a/README.md b/README.md index a725fb8b53..401fdac88f 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,24 @@ You can view the local environment at `localhost:8000/`. Updates to docs are aut We include several tools to test that new content doesn't break the documentation. Most of these tests are performed automatically by our continuous integration service, but pull requests created from external contributors aren't included in CI tests. If you want to manually test your branch, you can execute the following tests within the Docker container. + +### Local VRT with BackstopJS +VRT is not currently automated as part of our continuous integration pipeline, however this can be done locally and manually. The [BacktstopJS configuration file]() defines 8 scenarios to cover the various template files used across the Pantheon Docs theme. + +Before you can run VRT locally, you must have the Pantheon Docs site running locally. Follow the [steps above](#get-the-code), you should be able to visit the local site at this URL: `localhost:8000` + +From the project root, run this command to create fresh reference screenshots from production: +``` +backstop reference +``` + +Then, run the tests locally: +``` +backstop test +``` + +Maintainers for this project should generate fresh BackstopJS Reports whenever reviewing Pull Requests with site-wide implications. + ### Merge Conflicts To check for merge conflict messages accidentally committed into the docs, run `merge_conflicts.sh` from `scripts`. diff --git a/backstop.json b/backstop.json new file mode 100644 index 0000000000..a1574d9b91 --- /dev/null +++ b/backstop.json @@ -0,0 +1,82 @@ +{ + "viewports": [ + { + "label": "desktop", + "width": 1280, + "height": 1080 + } + ], + "onBeforeScript": "puppet/onBefore.js", + "onReadyScript": "puppet/onReady.js", + "scenarios": [ + { + "label": "Pantheon Docs Homepage", + "url": "http://localhost:8000", + "referenceUrl": "https://docs.pantheon.io", + "delay": 4000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Get Started - Landing Page", + "url": "http://localhost:8000/get-started/", + "referenceUrl": "https://docs.pantheon.io/get-started/", + "delay": 10000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Release Notes - Single Entry", + "url": "http://localhost:8000/release-notes/2024/05/new-relic-agent-update-released", + "referenceUrl": "https://docs.pantheon.io/release-notes/2024/05/new-relic-agent-update-released", + "delay": 15000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Terminus Manual - Single Page", + "url": "http://localhost:8000/terminus/install", + "referenceUrl": "https://docs.pantheon.io/terminus/install", + "delay": 4000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Certification - Landing Page", + "url": "http://localhost:8000/certification", + "referenceUrl": "https://docs.pantheon.io/certification", + "delay": 4000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Certification - Study Guide", + "url": "http://localhost:8000/certification/study-guide", + "referenceUrl": "https://docs.pantheon.io/certification/study-guide", + "delay": 4000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Guide Layout", + "url": "http://localhost:8000/guides/mariadb-mysql/kill-mysql-queries", + "referenceUrl": "https://docs.pantheon.io/guides/mariadb-mysql/kill-mysql-queries", + "delay": 4000, + "misMatchThreshold" : 0.1 + }, + { + "label": "Individual Doc Page", + "url": "http://localhost:8000/drupal-cron", + "referenceUrl": "https://docs.pantheon.io/drupal-cron", + "delay": 4000, + "misMatchThreshold" : 0.1 + } + ], + "paths": { + "bitmaps_reference": "backstop_data/bitmaps_reference", + "bitmaps_test": "backstop_data/bitmaps_test", + "engine_scripts": "backstop_data/engine_scripts", + "html_report": "backstop_data/html_report", + "ci_report": "backstop_data/ci_report" + }, + "report": ["browser"], + "engine": "puppeteer", + "engineFlags": [], + "asyncCaptureLimit": 10, + "debug": false, + "debugWindow": false +} diff --git a/package-lock.json b/package-lock.json index 009064402b..9ace79dd9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@pantheon-systems/pds-toolkit-react": "^1.0.0-dev.106", "algoliasearch": "^4.14.3", "babel-plugin-remove-graphql-queries": "^4.25.0", + "backstopjs": "^6.3.23", "bootstrap": "^3.4.1", "dotenv": "^10.0.0", "fs": "0.0.1-security", @@ -3656,6 +3657,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@mirzazeyrek/node-resemble-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@mirzazeyrek/node-resemble-js/-/node-resemble-js-1.2.1.tgz", + "integrity": "sha512-+z1c7HpC5ysdSVVyUVz67hctVLl337VlRJP/MBwpvXHkKJdlnSUVrBhlRzxgal7xpm1uDE2JeUhWbQh6wPRC4w==", + "dependencies": { + "jpeg-js": "^0.4.2", + "pngjs": "^6.0.0" + } + }, "node_modules/@mischnic/json-sourcemap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", @@ -5137,6 +5147,172 @@ "node": ">= 8" } }, + "node_modules/@puppeteer/browsers": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", + "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.4.0", + "semver": "7.6.0", + "tar-fs": "3.0.5", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@puppeteer/browsers/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@puppeteer/browsers/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@puppeteer/browsers/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/@remix-run/router": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", @@ -5276,6 +5452,11 @@ "node": ">= 6" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -5644,6 +5825,15 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yoga-layout": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", @@ -6123,6 +6313,18 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6457,6 +6659,17 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -6612,6 +6825,11 @@ "deep-equal": "^2.0.5" } }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, "node_modules/babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -7068,6 +7286,115 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, + "node_modules/backstopjs": { + "version": "6.3.23", + "resolved": "https://registry.npmjs.org/backstopjs/-/backstopjs-6.3.23.tgz", + "integrity": "sha512-GRSth3jEWI0goJ5ETA+D6QsK7ZZi0+qvZ0AAroGoLODCb20Y7NG3gc0Egnf4Qdrqg4D+seJHVjfZwqm3nuYqZg==", + "dependencies": { + "@mirzazeyrek/node-resemble-js": "^1.2.1", + "chalk": "^4.1.2", + "diverged": "^0.1.3", + "fs-extra": "^11.2.0", + "jump.js": "^1.0.2", + "junit-report-builder": "^3.1.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "object-hash": "3.0.0", + "opn": "^6.0.0", + "os": "^0.1.2", + "p-map": "^4.0.0", + "path": "^0.12.7", + "playwright": "^1.40.1", + "portfinder": "^1.0.32", + "puppeteer": "^22.1.0", + "super-simple-web-server": "^1.1.4", + "temp": "^0.9.4" + }, + "bin": { + "backstop": "cli/index.js" + }, + "engines": { + "node": ">=16.0.0 <=20.x.x", + "npm": ">=8.0.0" + } + }, + "node_modules/backstopjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/backstopjs/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/backstopjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/backstopjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/backstopjs/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/backstopjs/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/backstopjs/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -7082,6 +7409,47 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", + "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^1.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", + "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", + "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", + "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", + "optional": true, + "dependencies": { + "streamx": "^2.16.1" + } + }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -7117,6 +7485,14 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -7438,6 +7814,14 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -7951,6 +8335,24 @@ "node": ">=6.0" } }, + "node_modules/chromium-bidi": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", + "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.22.4" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/chromium-bidi/node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -7966,6 +8368,14 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -8820,6 +9230,14 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "engines": { + "node": ">= 14" + } + }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -8882,6 +9300,14 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/date-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -9029,6 +9455,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -9182,6 +9621,19 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/devtools-protocol": { + "version": "0.0.1273771", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", + "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==" + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -9201,6 +9653,25 @@ "node": ">=8" } }, + "node_modules/diverged": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/diverged/-/diverged-0.1.3.tgz", + "integrity": "sha512-W8BLyp4Eo+YW9uQ3F5c9BXDT9ITCARA2CFQVb+v57FWYfkr0XjwNOASZacDCq+syk1i/obZ4BZ3w1qtlRO6hQw==", + "dependencies": { + "diff": "^3.5.0", + "pixelmatch": "^4.0.2", + "pngjs": "^3.3.3", + "super-simple-web-server": "^1.0.0" + } + }, + "node_modules/diverged/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -9500,6 +9971,14 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -9730,14 +10209,13 @@ } }, "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", @@ -9758,42 +10236,6 @@ "node": ">=4.0" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -9803,17 +10245,6 @@ "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -10830,11 +11261,49 @@ "node": ">=0.6.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -10908,6 +11377,14 @@ "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==" }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -14346,6 +14823,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/git-up": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", @@ -15213,6 +15717,14 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -15373,6 +15885,23 @@ "loose-envify": "^1.0.0" } }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -18159,6 +18688,11 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -18176,6 +18710,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -18343,6 +18882,25 @@ "node": ">=4.0" } }, + "node_modules/jump.js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", + "integrity": "sha512-oUkJJ/Y4ATU5qjkXBntCZSKctbSyS3ewe2jrLaUu/cc9jsQiAn0fnTUxQnZz3mJdDdem1Q279zrD6h3n+Cgxtg==" + }, + "node_modules/junit-report-builder": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", + "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", + "dependencies": { + "date-format": "4.0.3", + "lodash": "^4.17.21", + "make-dir": "^3.1.0", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/keyv": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", @@ -19669,6 +20227,14 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/new-github-issue-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", @@ -19913,6 +20479,14 @@ "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz", "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -20093,6 +20667,26 @@ "node": ">=0.10" } }, + "node_modules/opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "deprecated": "The package has been renamed to `open`", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "engines": { + "node": ">=4" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -20114,6 +20708,11 @@ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==" }, + "node_modules/os": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" + }, "node_modules/os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -20184,6 +20783,20 @@ "node": ">=8" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -20218,6 +20831,71 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -20581,6 +21259,15 @@ "cross-spawn": "^6.0.5" } }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, "node_modules/path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", @@ -20668,6 +21355,11 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, "node_modules/physical-cpu-count": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", @@ -20697,6 +21389,25 @@ "node": ">= 6" } }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pixelmatch/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -20766,6 +21477,71 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "node_modules/playwright": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz", + "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==", + "dependencies": { + "playwright-core": "1.44.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz", + "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/pngjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -21429,6 +22205,14 @@ "stream-parser": "~0.3.1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -21511,6 +22295,72 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -21549,6 +22399,100 @@ "node": ">=8" } }, + "node_modules/puppeteer": { + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.8.0.tgz", + "integrity": "sha512-Z616wyTr0d7KpxmfcBG22rAkzuo/xzHJ3ycpu4KiJ3dZNHn/C1CpqcCwPlpiIIsmPojTAfWjo6EMR7M+AaC0Ww==", + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "2.2.3", + "cosmiconfig": "9.0.0", + "devtools-protocol": "0.0.1273771", + "puppeteer-core": "22.8.0" + }, + "bin": { + "puppeteer": "lib/esm/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", + "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", + "dependencies": { + "@puppeteer/browsers": "2.2.3", + "chromium-bidi": "0.5.19", + "debug": "4.3.4", + "devtools-protocol": "0.0.1273771", + "ws": "8.17.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/puppeteer/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -21613,6 +22557,11 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -23880,6 +24829,15 @@ "node": ">=8.0.0" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -23936,6 +24894,43 @@ "node": ">=10.0.0" } }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -24143,6 +25138,18 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -24401,6 +25408,14 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" }, + "node_modules/super-simple-web-server": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/super-simple-web-server/-/super-simple-web-server-1.1.4.tgz", + "integrity": "sha512-sQdVXz8ZDBMloocL63mifyVVzhxP55MlO2F0MiYJAJQiHTp42M2C3m2dZBIxGkcC7NUDr1/p0UhvGQvOsxZLpw==", + "dependencies": { + "express": "^4.16.3" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -24561,6 +25576,29 @@ "node": ">=6" } }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -25102,6 +26140,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -25659,16 +26706,34 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" + }, "node_modules/username-sync": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", @@ -26205,6 +27270,14 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "engines": { + "node": ">=8.0" + } + }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -26332,6 +27405,15 @@ "node": ">=6" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -26388,6 +27470,14 @@ "node": ">=6" } }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", @@ -28992,6 +30082,15 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" }, + "@mirzazeyrek/node-resemble-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@mirzazeyrek/node-resemble-js/-/node-resemble-js-1.2.1.tgz", + "integrity": "sha512-+z1c7HpC5ysdSVVyUVz67hctVLl337VlRJP/MBwpvXHkKJdlnSUVrBhlRzxgal7xpm1uDE2JeUhWbQh6wPRC4w==", + "requires": { + "jpeg-js": "^0.4.2", + "pngjs": "^6.0.0" + } + }, "@mischnic/json-sourcemap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", @@ -30036,6 +31135,130 @@ } } }, + "@puppeteer/browsers": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", + "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", + "requires": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.4.0", + "semver": "7.6.0", + "tar-fs": "3.0.5", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "requires": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } + } + }, "@remix-run/router": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", @@ -30143,6 +31366,11 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, + "@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -30504,6 +31732,15 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, + "@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@types/yoga-layout": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", @@ -30863,6 +32100,15 @@ "debug": "4" } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -31109,6 +32355,14 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "requires": { + "tslib": "^2.0.1" + } + }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -31222,6 +32476,11 @@ "deep-equal": "^2.0.5" } }, + "b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, "babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -31580,6 +32839,86 @@ } } }, + "backstopjs": { + "version": "6.3.23", + "resolved": "https://registry.npmjs.org/backstopjs/-/backstopjs-6.3.23.tgz", + "integrity": "sha512-GRSth3jEWI0goJ5ETA+D6QsK7ZZi0+qvZ0AAroGoLODCb20Y7NG3gc0Egnf4Qdrqg4D+seJHVjfZwqm3nuYqZg==", + "requires": { + "@mirzazeyrek/node-resemble-js": "^1.2.1", + "chalk": "^4.1.2", + "diverged": "^0.1.3", + "fs-extra": "^11.2.0", + "jump.js": "^1.0.2", + "junit-report-builder": "^3.1.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "object-hash": "3.0.0", + "opn": "^6.0.0", + "os": "^0.1.2", + "p-map": "^4.0.0", + "path": "^0.12.7", + "playwright": "^1.40.1", + "portfinder": "^1.0.32", + "puppeteer": "^22.1.0", + "super-simple-web-server": "^1.1.4", + "temp": "^0.9.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -31590,6 +32929,47 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "optional": true + }, + "bare-fs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", + "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", + "optional": true, + "requires": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^1.0.0" + } + }, + "bare-os": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", + "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", + "optional": true + }, + "bare-path": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", + "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", + "optional": true, + "requires": { + "bare-os": "^2.1.0" + } + }, + "bare-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", + "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", + "optional": true, + "requires": { + "streamx": "^2.16.1" + } + }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -31608,6 +32988,11 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" }, + "basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==" + }, "before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -31832,6 +33217,11 @@ "ieee754": "^1.1.13" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -32236,6 +33626,23 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" }, + "chromium-bidi": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", + "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", + "requires": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.22.4" + }, + "dependencies": { + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + } + } + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -32251,6 +33658,11 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -32903,6 +34315,11 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, + "data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==" + }, "data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -32948,6 +34365,11 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, + "date-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -33050,6 +34472,16 @@ "object-keys": "^1.1.1" } }, + "degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "requires": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -33169,6 +34601,16 @@ } } }, + "devtools-protocol": { + "version": "0.0.1273771", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", + "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -33182,6 +34624,24 @@ "path-type": "^4.0.0" } }, + "diverged": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/diverged/-/diverged-0.1.3.tgz", + "integrity": "sha512-W8BLyp4Eo+YW9uQ3F5c9BXDT9ITCARA2CFQVb+v57FWYfkr0XjwNOASZacDCq+syk1i/obZ4BZ3w1qtlRO6hQw==", + "requires": { + "diff": "^3.5.0", + "pixelmatch": "^4.0.2", + "pngjs": "^3.3.3", + "super-simple-web-server": "^1.0.0" + }, + "dependencies": { + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + } + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -33415,6 +34875,11 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -33602,14 +35067,13 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { @@ -33618,46 +35082,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } } } }, @@ -34410,11 +35839,37 @@ } } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -34482,6 +35937,14 @@ "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==" }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -37087,6 +38550,29 @@ "get-intrinsic": "^1.1.1" } }, + "get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "requires": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "dependencies": { + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, "git-up": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", @@ -37712,6 +39198,11 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -37832,6 +39323,22 @@ "loose-envify": "^1.0.0" } }, + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + } + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -39789,6 +41296,11 @@ "@sideway/pinpoint": "^2.0.0" } }, + "jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -39803,6 +41315,11 @@ "esprima": "^4.0.0" } }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, "jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -39921,6 +41438,22 @@ "object.assign": "^4.1.3" } }, + "jump.js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", + "integrity": "sha512-oUkJJ/Y4ATU5qjkXBntCZSKctbSyS3ewe2jrLaUu/cc9jsQiAn0fnTUxQnZz3mJdDdem1Q279zrD6h3n+Cgxtg==" + }, + "junit-report-builder": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", + "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", + "requires": { + "date-format": "4.0.3", + "lodash": "^4.17.21", + "make-dir": "^3.1.0", + "xmlbuilder": "^15.1.1" + } + }, "keyv": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", @@ -40941,6 +42474,11 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" + }, "new-github-issue-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", @@ -41113,6 +42651,11 @@ "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz", "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -41236,6 +42779,21 @@ "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + } + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -41254,6 +42812,11 @@ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==" }, + "os": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" + }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -41300,6 +42863,14 @@ "p-limit": "^2.2.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -41322,6 +42893,58 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "requires": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "dependencies": { + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + } + } + }, + "pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "requires": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + } + }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -41607,6 +43230,15 @@ "cross-spawn": "^6.0.5" } }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, "path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", @@ -41669,6 +43301,11 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, "physical-cpu-count": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", @@ -41689,6 +43326,21 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "requires": { + "pngjs": "^3.0.0" + }, + "dependencies": { + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + } + } + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -41742,6 +43394,53 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "playwright": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz", + "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==", + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.44.0" + } + }, + "playwright-core": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz", + "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==" + }, + "pngjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==" + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -42154,6 +43853,11 @@ "stream-parser": "~0.3.1" } }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -42223,6 +43927,59 @@ "ipaddr.js": "1.9.1" } }, + "proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "dependencies": { + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -42255,6 +44012,63 @@ "escape-goat": "^2.0.0" } }, + "puppeteer": { + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.8.0.tgz", + "integrity": "sha512-Z616wyTr0d7KpxmfcBG22rAkzuo/xzHJ3ycpu4KiJ3dZNHn/C1CpqcCwPlpiIIsmPojTAfWjo6EMR7M+AaC0Ww==", + "requires": { + "@puppeteer/browsers": "2.2.3", + "cosmiconfig": "9.0.0", + "devtools-protocol": "0.0.1273771", + "puppeteer-core": "22.8.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "requires": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "puppeteer-core": { + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", + "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", + "requires": { + "@puppeteer/browsers": "2.2.3", + "chromium-bidi": "0.5.19", + "debug": "4.3.4", + "devtools-protocol": "0.0.1273771", + "ws": "8.17.0" + }, + "dependencies": { + "ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "requires": {} + } + } + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -42289,6 +44103,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -44037,6 +45856,11 @@ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==" }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, "snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -44084,6 +45908,35 @@ "debug": "~4.3.1" } }, + "socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "requires": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "requires": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + } + } + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -44255,6 +46108,16 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, + "streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -44441,6 +46304,14 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" }, + "super-simple-web-server": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/super-simple-web-server/-/super-simple-web-server-1.1.4.tgz", + "integrity": "sha512-sQdVXz8ZDBMloocL63mifyVVzhxP55MlO2F0MiYJAJQiHTp42M2C3m2dZBIxGkcC7NUDr1/p0UhvGQvOsxZLpw==", + "requires": { + "express": "^4.16.3" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -44568,6 +46439,25 @@ "readable-stream": "^3.1.1" } }, + "temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "requires": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -44949,6 +46839,15 @@ "which-boxed-primitive": "^1.0.2" } }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -45352,11 +47251,31 @@ "prepend-http": "^2.0.0" } }, + "urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" + }, "username-sync": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -45774,6 +47693,11 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -45874,6 +47798,15 @@ "decamelize": "^1.2.0" } }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -45914,6 +47847,11 @@ } } }, + "zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" + }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index 3f6dc41b2a..9d80d92a17 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@pantheon-systems/pds-toolkit-react": "^1.0.0-dev.106", "algoliasearch": "^4.14.3", "babel-plugin-remove-graphql-queries": "^4.25.0", + "backstopjs": "^6.3.23", "bootstrap": "^3.4.1", "dotenv": "^10.0.0", "fs": "0.0.1-security", From d95bca87ff06748ecedacc654d4066dae9ad56fd Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 13 May 2024 15:59:24 -0500 Subject: [PATCH 005/259] removing potentially unneeded component --- src/components/mdxWrapper.js | 12 +----------- src/components/releaseHeadlines.js | 17 ----------------- 2 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 src/components/releaseHeadlines.js diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index 51d495c6d5..5b6d1667b6 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -33,13 +33,6 @@ import ProductGroup from "./productGroup" import Youtube from "./youtube" import Wistia from "./wistia" -import { - headline2, - headline3, - headline4, -} from "./releaseHeadlines" - - const shortcodes = { Accordion, Alert, @@ -71,10 +64,7 @@ const shortcodes = { TabList, TerminusVersion, Wistia, - Youtube, - h1: headline2, - h2: headline3, - h3: headline4, + Youtube } const MdxWrapper = ({ mdx }) => { diff --git a/src/components/releaseHeadlines.js b/src/components/releaseHeadlines.js deleted file mode 100644 index 073e24e6d1..0000000000 --- a/src/components/releaseHeadlines.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react" - -export const headline1 = props => { - return

{props.children}

-} - -export const headline2 = props => { - return

{props.children}

-} - -export const headline3 = props => { - return

{props.children}

-} - -export const headline4 = props => { - return

{props.children}

-} From cf75a790456eec0e0d1527c7b07f61a2aabdb2f9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 13 May 2024 16:12:30 -0500 Subject: [PATCH 006/259] Revert "removing potentially unneeded component" This reverts commit d95bca87ff06748ecedacc654d4066dae9ad56fd. --- src/components/mdxWrapper.js | 12 +++++++++++- src/components/releaseHeadlines.js | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/components/releaseHeadlines.js diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index 5b6d1667b6..51d495c6d5 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -33,6 +33,13 @@ import ProductGroup from "./productGroup" import Youtube from "./youtube" import Wistia from "./wistia" +import { + headline2, + headline3, + headline4, +} from "./releaseHeadlines" + + const shortcodes = { Accordion, Alert, @@ -64,7 +71,10 @@ const shortcodes = { TabList, TerminusVersion, Wistia, - Youtube + Youtube, + h1: headline2, + h2: headline3, + h3: headline4, } const MdxWrapper = ({ mdx }) => { diff --git a/src/components/releaseHeadlines.js b/src/components/releaseHeadlines.js new file mode 100644 index 0000000000..073e24e6d1 --- /dev/null +++ b/src/components/releaseHeadlines.js @@ -0,0 +1,17 @@ +import React from "react" + +export const headline1 = props => { + return

{props.children}

+} + +export const headline2 = props => { + return

{props.children}

+} + +export const headline3 = props => { + return

{props.children}

+} + +export const headline4 = props => { + return

{props.children}

+} From 1a872ea812fd645b52c7e3572c0c34402e0b51d5 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 13 May 2024 16:13:27 -0500 Subject: [PATCH 007/259] removing releaseHeadlines from MdxWrapper --- src/components/mdxWrapper.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index 51d495c6d5..5b6d1667b6 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -33,13 +33,6 @@ import ProductGroup from "./productGroup" import Youtube from "./youtube" import Wistia from "./wistia" -import { - headline2, - headline3, - headline4, -} from "./releaseHeadlines" - - const shortcodes = { Accordion, Alert, @@ -71,10 +64,7 @@ const shortcodes = { TabList, TerminusVersion, Wistia, - Youtube, - h1: headline2, - h2: headline3, - h3: headline4, + Youtube } const MdxWrapper = ({ mdx }) => { From 8e731b3d3d57b08ddf24cdc1776bc133aec11366 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 13 May 2024 16:38:29 -0500 Subject: [PATCH 008/259] adding more pages to backstop --- backstop.json | 53 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/backstop.json b/backstop.json index a1574d9b91..30841f811b 100644 --- a/backstop.json +++ b/backstop.json @@ -6,8 +6,6 @@ "height": 1080 } ], - "onBeforeScript": "puppet/onBefore.js", - "onReadyScript": "puppet/onReady.js", "scenarios": [ { "label": "Pantheon Docs Homepage", @@ -20,14 +18,28 @@ "label": "Get Started - Landing Page", "url": "http://localhost:8000/get-started/", "referenceUrl": "https://docs.pantheon.io/get-started/", - "delay": 10000, + "delay": 4000, "misMatchThreshold" : 0.1 }, + { + "label": "Release Notes - category listing", + "url": "http://localhost:8000/release-notes/policy", + "referenceUrl": "https://docs.pantheon.io/release-notes/policy", + "delay": 4000, + "misMatchThreshold": 0.1 + }, + { + "label": "Style Guide", + "url": "http://localhost:8000/style-guide", + "referenceUrl": "https://docs.pantheon.io/style-guide", + "delay": 4000, + "misMatchThreshold": 0.1 + }, { "label": "Release Notes - Single Entry", "url": "http://localhost:8000/release-notes/2024/05/new-relic-agent-update-released", "referenceUrl": "https://docs.pantheon.io/release-notes/2024/05/new-relic-agent-update-released", - "delay": 15000, + "delay": 4000, "misMatchThreshold" : 0.1 }, { @@ -37,6 +49,14 @@ "delay": 4000, "misMatchThreshold" : 0.1 }, + + { + "label": "Terminus Manual - Single Command", + "url": "http://localhost:8000/terminus/commands/completion", + "referenceUrl": "https://docs.pantheon.io/terminus/commands/completion", + "delay": 4000, + "misMatchThreshold": 0.1 + }, { "label": "Certification - Landing Page", "url": "http://localhost:8000/certification", @@ -44,6 +64,13 @@ "delay": 4000, "misMatchThreshold" : 0.1 }, + { + "label": "Certification - Another Landing Page", + "url": "http://localhost:8000/automate", + "referenceUrl": "https://docs.pantheon.io/automate", + "delay": 4000, + "misMatchThreshold": 0.1 + }, { "label": "Certification - Study Guide", "url": "http://localhost:8000/certification/study-guide", @@ -64,7 +91,25 @@ "referenceUrl": "https://docs.pantheon.io/drupal-cron", "delay": 4000, "misMatchThreshold" : 0.1 + }, + + + + + { + "label": "Glossary", + "url": "http://localhost:8000/glossary", + "referenceUrl": "https://docs.pantheon.io/glossary", + "delay": 4000, + "misMatchThreshold": 0.1 } + + + + + + + ], "paths": { "bitmaps_reference": "backstop_data/bitmaps_reference", From 4771556c57623bed33d2cd9d216bdef92fa50f4e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 13 May 2024 16:39:45 -0500 Subject: [PATCH 009/259] adding npx to instructions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 401fdac88f..667b6673dd 100644 --- a/README.md +++ b/README.md @@ -116,18 +116,18 @@ We include several tools to test that new content doesn't break the documentatio ### Local VRT with BackstopJS -VRT is not currently automated as part of our continuous integration pipeline, however this can be done locally and manually. The [BacktstopJS configuration file]() defines 8 scenarios to cover the various template files used across the Pantheon Docs theme. +VRT is not currently automated as part of our continuous integration pipeline, however this can be done locally and manually. The [BacktstopJS configuration file]() defines multiple scenarios to cover the various template files used across the Pantheon Docs theme. Before you can run VRT locally, you must have the Pantheon Docs site running locally. Follow the [steps above](#get-the-code), you should be able to visit the local site at this URL: `localhost:8000` From the project root, run this command to create fresh reference screenshots from production: ``` -backstop reference +npx backstop reference ``` Then, run the tests locally: ``` -backstop test +npx backstop test ``` Maintainers for this project should generate fresh BackstopJS Reports whenever reviewing Pull Requests with site-wide implications. From cdc548377945fdb44fa5304afdf287180b4fa3f1 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 14 May 2024 16:59:19 -0500 Subject: [PATCH 010/259] mdx customshortcodes --- src/components/ReleaseNoteTeaser/index.js | 14 +++++++++++++- src/components/mdxWrapper.js | 9 ++++++--- src/templates/releaseNotePage.js | 17 +++++++++++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/components/ReleaseNoteTeaser/index.js b/src/components/ReleaseNoteTeaser/index.js index 1b5af7ee96..c4ed4639ba 100644 --- a/src/components/ReleaseNoteTeaser/index.js +++ b/src/components/ReleaseNoteTeaser/index.js @@ -3,9 +3,21 @@ import { Link } from "gatsby" import ReleaseNoteCategories from "../ReleaseNoteCategories/index.js" import MdxWrapper from "../mdxWrapper.js" import PublishedDate from "../PublishedDate/index.js" +import { + headline2, + headline3, + headline4, +} from "../releaseHeadlines" import "./style.css" +// Change the heading levels when release notes are displayed as a list so that the the headings don't conflict with the release note headings. +const customShortcodes = { + h1: headline2, + h2: headline3, + h3: headline4, +} + const ReleaseNoteTeaser = ({ ReleaseNoteData, className }) => { if (!ReleaseNoteData) { return null @@ -36,7 +48,7 @@ const ReleaseNoteTeaser = ({ ReleaseNoteData, className }) => { dateString={ReleaseNoteData.frontmatter.published_date} className="pds-spacing-mar-block-end-m" /> - + ) diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index 5b6d1667b6..897c5e9b92 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -33,7 +33,7 @@ import ProductGroup from "./productGroup" import Youtube from "./youtube" import Wistia from "./wistia" -const shortcodes = { +const defaultShortcodes = { Accordion, Alert, BuildTools, @@ -67,9 +67,12 @@ const shortcodes = { Youtube } -const MdxWrapper = ({ mdx }) => { +const MdxWrapper = ({ mdx, customShortcodes = {} }) => { + // Custom shortcodes can be passed in as a prop to allow for + // things like the changing of heading levels in ReleaseNoteTeaser + const mergedShortcodes = { ...defaultShortcodes, ...customShortcodes }; return ( - + {mdx} ) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index d2c94852fb..6a2b7162a0 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -5,9 +5,18 @@ import SEO from "../layout/seo" import ReleaseNoteCategories from "../components/ReleaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" import PublishedDate from "../components/PublishedDate" -// This is used to get the fields from the MDX file. -import { releaseNoteFragment } from "../fragments/releaseNote.js" -import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" +import { Container } from "@pantheon-systems/pds-toolkit-react" +import { + headline2, + headline3, + headline4, +} from "../components/releaseHeadlines" + +const customShortcodes = { + h1: headline2, + h2: headline3, + h3: headline4, +} // Set container width for search and main content. const containerWidth = "standard" @@ -50,7 +59,7 @@ class ReleaseNoteTemplate extends React.Component { dateString={node.frontmatter.published_date} className="pds-spacing-mar-block-end-m" /> - + From 6457cd664f1931c18e3d061e992196cb5e0afc46 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 11 Jun 2024 11:54:14 -0500 Subject: [PATCH 011/259] Revert "BackstopJS init for local VRT (#8989)" This reverts commit 5b9f380b6b346841086bbf58bb47bea34da207ed. --- .gitignore | 3 - README.md | 18 - backstop.json | 127 --- package-lock.json | 2120 ++------------------------------------------- package.json | 1 - 5 files changed, 91 insertions(+), 2178 deletions(-) delete mode 100644 backstop.json diff --git a/.gitignore b/.gitignore index 495653f35a..0b2d05fcb5 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,3 @@ yarn-error.log /.env.production /.idea /.envrc - -# Backstop dependencies and artifacts -/backstop_data/ diff --git a/README.md b/README.md index 667b6673dd..a725fb8b53 100644 --- a/README.md +++ b/README.md @@ -114,24 +114,6 @@ You can view the local environment at `localhost:8000/`. Updates to docs are aut We include several tools to test that new content doesn't break the documentation. Most of these tests are performed automatically by our continuous integration service, but pull requests created from external contributors aren't included in CI tests. If you want to manually test your branch, you can execute the following tests within the Docker container. - -### Local VRT with BackstopJS -VRT is not currently automated as part of our continuous integration pipeline, however this can be done locally and manually. The [BacktstopJS configuration file]() defines multiple scenarios to cover the various template files used across the Pantheon Docs theme. - -Before you can run VRT locally, you must have the Pantheon Docs site running locally. Follow the [steps above](#get-the-code), you should be able to visit the local site at this URL: `localhost:8000` - -From the project root, run this command to create fresh reference screenshots from production: -``` -npx backstop reference -``` - -Then, run the tests locally: -``` -npx backstop test -``` - -Maintainers for this project should generate fresh BackstopJS Reports whenever reviewing Pull Requests with site-wide implications. - ### Merge Conflicts To check for merge conflict messages accidentally committed into the docs, run `merge_conflicts.sh` from `scripts`. diff --git a/backstop.json b/backstop.json deleted file mode 100644 index 30841f811b..0000000000 --- a/backstop.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "viewports": [ - { - "label": "desktop", - "width": 1280, - "height": 1080 - } - ], - "scenarios": [ - { - "label": "Pantheon Docs Homepage", - "url": "http://localhost:8000", - "referenceUrl": "https://docs.pantheon.io", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Get Started - Landing Page", - "url": "http://localhost:8000/get-started/", - "referenceUrl": "https://docs.pantheon.io/get-started/", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Release Notes - category listing", - "url": "http://localhost:8000/release-notes/policy", - "referenceUrl": "https://docs.pantheon.io/release-notes/policy", - "delay": 4000, - "misMatchThreshold": 0.1 - }, - { - "label": "Style Guide", - "url": "http://localhost:8000/style-guide", - "referenceUrl": "https://docs.pantheon.io/style-guide", - "delay": 4000, - "misMatchThreshold": 0.1 - }, - { - "label": "Release Notes - Single Entry", - "url": "http://localhost:8000/release-notes/2024/05/new-relic-agent-update-released", - "referenceUrl": "https://docs.pantheon.io/release-notes/2024/05/new-relic-agent-update-released", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Terminus Manual - Single Page", - "url": "http://localhost:8000/terminus/install", - "referenceUrl": "https://docs.pantheon.io/terminus/install", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - - { - "label": "Terminus Manual - Single Command", - "url": "http://localhost:8000/terminus/commands/completion", - "referenceUrl": "https://docs.pantheon.io/terminus/commands/completion", - "delay": 4000, - "misMatchThreshold": 0.1 - }, - { - "label": "Certification - Landing Page", - "url": "http://localhost:8000/certification", - "referenceUrl": "https://docs.pantheon.io/certification", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Certification - Another Landing Page", - "url": "http://localhost:8000/automate", - "referenceUrl": "https://docs.pantheon.io/automate", - "delay": 4000, - "misMatchThreshold": 0.1 - }, - { - "label": "Certification - Study Guide", - "url": "http://localhost:8000/certification/study-guide", - "referenceUrl": "https://docs.pantheon.io/certification/study-guide", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Guide Layout", - "url": "http://localhost:8000/guides/mariadb-mysql/kill-mysql-queries", - "referenceUrl": "https://docs.pantheon.io/guides/mariadb-mysql/kill-mysql-queries", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - { - "label": "Individual Doc Page", - "url": "http://localhost:8000/drupal-cron", - "referenceUrl": "https://docs.pantheon.io/drupal-cron", - "delay": 4000, - "misMatchThreshold" : 0.1 - }, - - - - - { - "label": "Glossary", - "url": "http://localhost:8000/glossary", - "referenceUrl": "https://docs.pantheon.io/glossary", - "delay": 4000, - "misMatchThreshold": 0.1 - } - - - - - - - - ], - "paths": { - "bitmaps_reference": "backstop_data/bitmaps_reference", - "bitmaps_test": "backstop_data/bitmaps_test", - "engine_scripts": "backstop_data/engine_scripts", - "html_report": "backstop_data/html_report", - "ci_report": "backstop_data/ci_report" - }, - "report": ["browser"], - "engine": "puppeteer", - "engineFlags": [], - "asyncCaptureLimit": 10, - "debug": false, - "debugWindow": false -} diff --git a/package-lock.json b/package-lock.json index 9ace79dd9a..009064402b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,6 @@ "@pantheon-systems/pds-toolkit-react": "^1.0.0-dev.106", "algoliasearch": "^4.14.3", "babel-plugin-remove-graphql-queries": "^4.25.0", - "backstopjs": "^6.3.23", "bootstrap": "^3.4.1", "dotenv": "^10.0.0", "fs": "0.0.1-security", @@ -3657,15 +3656,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mirzazeyrek/node-resemble-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@mirzazeyrek/node-resemble-js/-/node-resemble-js-1.2.1.tgz", - "integrity": "sha512-+z1c7HpC5ysdSVVyUVz67hctVLl337VlRJP/MBwpvXHkKJdlnSUVrBhlRzxgal7xpm1uDE2JeUhWbQh6wPRC4w==", - "dependencies": { - "jpeg-js": "^0.4.2", - "pngjs": "^6.0.0" - } - }, "node_modules/@mischnic/json-sourcemap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", @@ -5147,172 +5137,6 @@ "node": ">= 8" } }, - "node_modules/@puppeteer/browsers": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", - "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.4.0", - "semver": "7.6.0", - "tar-fs": "3.0.5", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@puppeteer/browsers/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@puppeteer/browsers/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@puppeteer/browsers/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@puppeteer/browsers/node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@puppeteer/browsers/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@puppeteer/browsers/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/@puppeteer/browsers/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@remix-run/router": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", @@ -5452,11 +5276,6 @@ "node": ">= 6" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -5825,15 +5644,6 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/yoga-layout": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", @@ -6313,18 +6123,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6659,17 +6457,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -6825,11 +6612,6 @@ "deep-equal": "^2.0.5" } }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, "node_modules/babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -7286,115 +7068,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, - "node_modules/backstopjs": { - "version": "6.3.23", - "resolved": "https://registry.npmjs.org/backstopjs/-/backstopjs-6.3.23.tgz", - "integrity": "sha512-GRSth3jEWI0goJ5ETA+D6QsK7ZZi0+qvZ0AAroGoLODCb20Y7NG3gc0Egnf4Qdrqg4D+seJHVjfZwqm3nuYqZg==", - "dependencies": { - "@mirzazeyrek/node-resemble-js": "^1.2.1", - "chalk": "^4.1.2", - "diverged": "^0.1.3", - "fs-extra": "^11.2.0", - "jump.js": "^1.0.2", - "junit-report-builder": "^3.1.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "object-hash": "3.0.0", - "opn": "^6.0.0", - "os": "^0.1.2", - "p-map": "^4.0.0", - "path": "^0.12.7", - "playwright": "^1.40.1", - "portfinder": "^1.0.32", - "puppeteer": "^22.1.0", - "super-simple-web-server": "^1.1.4", - "temp": "^0.9.4" - }, - "bin": { - "backstop": "cli/index.js" - }, - "engines": { - "node": ">=16.0.0 <=20.x.x", - "npm": ">=8.0.0" - } - }, - "node_modules/backstopjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/backstopjs/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/backstopjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/backstopjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/backstopjs/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/backstopjs/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/backstopjs/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -7409,47 +7082,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bare-events": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", - "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", - "optional": true - }, - "node_modules/bare-fs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", - "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-path": "^2.0.0", - "bare-stream": "^1.0.0" - } - }, - "node_modules/bare-os": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", - "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", - "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", - "optional": true, - "dependencies": { - "bare-os": "^2.1.0" - } - }, - "node_modules/bare-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", - "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", - "optional": true, - "dependencies": { - "streamx": "^2.16.1" - } - }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -7485,14 +7117,6 @@ "node": "^4.5.0 || >= 5.9" } }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -7814,14 +7438,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -8335,24 +7951,6 @@ "node": ">=6.0" } }, - "node_modules/chromium-bidi": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", - "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", - "dependencies": { - "mitt": "3.0.1", - "urlpattern-polyfill": "10.0.0", - "zod": "3.22.4" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/chromium-bidi/node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -8368,14 +7966,6 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -9230,14 +8820,6 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "engines": { - "node": ">= 14" - } - }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -9300,14 +8882,6 @@ "url": "https://opencollective.com/date-fns" } }, - "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -9455,19 +9029,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -9621,19 +9182,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/devtools-protocol": { - "version": "0.0.1273771", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", - "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==" - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -9653,25 +9201,6 @@ "node": ">=8" } }, - "node_modules/diverged": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/diverged/-/diverged-0.1.3.tgz", - "integrity": "sha512-W8BLyp4Eo+YW9uQ3F5c9BXDT9ITCARA2CFQVb+v57FWYfkr0XjwNOASZacDCq+syk1i/obZ4BZ3w1qtlRO6hQw==", - "dependencies": { - "diff": "^3.5.0", - "pixelmatch": "^4.0.2", - "pngjs": "^3.3.3", - "super-simple-web-server": "^1.0.0" - } - }, - "node_modules/diverged/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -9971,14 +9500,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -10209,13 +9730,14 @@ } }, "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2" + "esutils": "^2.0.2", + "optionator": "^0.8.1" }, "bin": { "escodegen": "bin/escodegen.js", @@ -10236,6 +9758,42 @@ "node": ">=4.0" } }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10245,6 +9803,17 @@ "node": ">=0.10.0" } }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -11261,49 +10830,11 @@ "node": ">=0.6.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -11377,14 +10908,6 @@ "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==" }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -14823,33 +14346,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-uri": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.2.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/get-uri/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/git-up": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", @@ -15717,14 +15213,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -15885,23 +15373,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -18688,11 +18159,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jpeg-js": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", - "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -18710,11 +18176,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -18882,25 +18343,6 @@ "node": ">=4.0" } }, - "node_modules/jump.js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", - "integrity": "sha512-oUkJJ/Y4ATU5qjkXBntCZSKctbSyS3ewe2jrLaUu/cc9jsQiAn0fnTUxQnZz3mJdDdem1Q279zrD6h3n+Cgxtg==" - }, - "node_modules/junit-report-builder": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", - "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", - "dependencies": { - "date-format": "4.0.3", - "lodash": "^4.17.21", - "make-dir": "^3.1.0", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/keyv": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", @@ -20227,14 +19669,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/new-github-issue-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", @@ -20479,14 +19913,6 @@ "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz", "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -20667,26 +20093,6 @@ "node": ">=0.10" } }, - "node_modules/opn": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", - "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", - "deprecated": "The package has been renamed to `open`", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "engines": { - "node": ">=4" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -20708,11 +20114,6 @@ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==" }, - "node_modules/os": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" - }, "node_modules/os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -20783,20 +20184,6 @@ "node": ">=8" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -20831,71 +20218,6 @@ "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -21259,15 +20581,6 @@ "cross-spawn": "^6.0.5" } }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, "node_modules/path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", @@ -21355,11 +20668,6 @@ "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, "node_modules/physical-cpu-count": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", @@ -21389,25 +20697,6 @@ "node": ">= 6" } }, - "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", - "dependencies": { - "pngjs": "^3.0.0" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -21477,71 +20766,6 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, - "node_modules/playwright": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz", - "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==", - "dependencies": { - "playwright-core": "1.44.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz", - "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -22205,14 +21429,6 @@ "stream-parser": "~0.3.1" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -22295,72 +21511,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -22399,100 +21549,6 @@ "node": ">=8" } }, - "node_modules/puppeteer": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.8.0.tgz", - "integrity": "sha512-Z616wyTr0d7KpxmfcBG22rAkzuo/xzHJ3ycpu4KiJ3dZNHn/C1CpqcCwPlpiIIsmPojTAfWjo6EMR7M+AaC0Ww==", - "hasInstallScript": true, - "dependencies": { - "@puppeteer/browsers": "2.2.3", - "cosmiconfig": "9.0.0", - "devtools-protocol": "0.0.1273771", - "puppeteer-core": "22.8.0" - }, - "bin": { - "puppeteer": "lib/esm/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", - "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", - "dependencies": { - "@puppeteer/browsers": "2.2.3", - "chromium-bidi": "0.5.19", - "debug": "4.3.4", - "devtools-protocol": "0.0.1273771", - "ws": "8.17.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/puppeteer/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -22557,11 +21613,6 @@ } ] }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" - }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -24829,15 +23880,6 @@ "node": ">=8.0.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -24894,43 +23936,6 @@ "node": ">=10.0.0" } }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -25138,18 +24143,6 @@ "node": ">=10.0.0" } }, - "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -25408,14 +24401,6 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" }, - "node_modules/super-simple-web-server": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/super-simple-web-server/-/super-simple-web-server-1.1.4.tgz", - "integrity": "sha512-sQdVXz8ZDBMloocL63mifyVVzhxP55MlO2F0MiYJAJQiHTp42M2C3m2dZBIxGkcC7NUDr1/p0UhvGQvOsxZLpw==", - "dependencies": { - "express": "^4.16.3" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -25576,29 +24561,6 @@ "node": ">=6" } }, - "node_modules/temp": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", - "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", - "dependencies": { - "mkdirp": "^0.5.1", - "rimraf": "~2.6.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -26140,15 +25102,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -26706,34 +25659,16 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" }, - "node_modules/urlpattern-polyfill": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", - "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" - }, "node_modules/username-sync": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", @@ -27270,14 +26205,6 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "engines": { - "node": ">=8.0" - } - }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -27405,15 +26332,6 @@ "node": ">=6" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -27470,14 +26388,6 @@ "node": ">=6" } }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", @@ -30082,15 +28992,6 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" }, - "@mirzazeyrek/node-resemble-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@mirzazeyrek/node-resemble-js/-/node-resemble-js-1.2.1.tgz", - "integrity": "sha512-+z1c7HpC5ysdSVVyUVz67hctVLl337VlRJP/MBwpvXHkKJdlnSUVrBhlRzxgal7xpm1uDE2JeUhWbQh6wPRC4w==", - "requires": { - "jpeg-js": "^0.4.2", - "pngjs": "^6.0.0" - } - }, "@mischnic/json-sourcemap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", @@ -31135,130 +30036,6 @@ } } }, - "@puppeteer/browsers": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", - "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", - "requires": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.4.0", - "semver": "7.6.0", - "tar-fs": "3.0.5", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", - "requires": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - } - } - }, "@remix-run/router": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", @@ -31366,11 +30143,6 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, - "@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" - }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -31732,15 +30504,6 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, - "@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "optional": true, - "requires": { - "@types/node": "*" - } - }, "@types/yoga-layout": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", @@ -32100,15 +30863,6 @@ "debug": "4" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -32355,14 +31109,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - } - }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -32476,11 +31222,6 @@ "deep-equal": "^2.0.5" } }, - "b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, "babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -32839,86 +31580,6 @@ } } }, - "backstopjs": { - "version": "6.3.23", - "resolved": "https://registry.npmjs.org/backstopjs/-/backstopjs-6.3.23.tgz", - "integrity": "sha512-GRSth3jEWI0goJ5ETA+D6QsK7ZZi0+qvZ0AAroGoLODCb20Y7NG3gc0Egnf4Qdrqg4D+seJHVjfZwqm3nuYqZg==", - "requires": { - "@mirzazeyrek/node-resemble-js": "^1.2.1", - "chalk": "^4.1.2", - "diverged": "^0.1.3", - "fs-extra": "^11.2.0", - "jump.js": "^1.0.2", - "junit-report-builder": "^3.1.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "object-hash": "3.0.0", - "opn": "^6.0.0", - "os": "^0.1.2", - "p-map": "^4.0.0", - "path": "^0.12.7", - "playwright": "^1.40.1", - "portfinder": "^1.0.32", - "puppeteer": "^22.1.0", - "super-simple-web-server": "^1.1.4", - "temp": "^0.9.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -32929,47 +31590,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "bare-events": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", - "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", - "optional": true - }, - "bare-fs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", - "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", - "optional": true, - "requires": { - "bare-events": "^2.0.0", - "bare-path": "^2.0.0", - "bare-stream": "^1.0.0" - } - }, - "bare-os": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", - "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", - "optional": true - }, - "bare-path": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", - "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", - "optional": true, - "requires": { - "bare-os": "^2.1.0" - } - }, - "bare-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", - "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", - "optional": true, - "requires": { - "streamx": "^2.16.1" - } - }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -32988,11 +31608,6 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" }, - "basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==" - }, "before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -33217,11 +31832,6 @@ "ieee754": "^1.1.13" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -33626,23 +32236,6 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" }, - "chromium-bidi": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", - "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", - "requires": { - "mitt": "3.0.1", - "urlpattern-polyfill": "10.0.0", - "zod": "3.22.4" - }, - "dependencies": { - "mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - } - } - }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -33658,11 +32251,6 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -34315,11 +32903,6 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, - "data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==" - }, "data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -34365,11 +32948,6 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, - "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==" - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -34472,16 +33050,6 @@ "object-keys": "^1.1.1" } }, - "degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "requires": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -34601,16 +33169,6 @@ } } }, - "devtools-protocol": { - "version": "0.0.1273771", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", - "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -34624,24 +33182,6 @@ "path-type": "^4.0.0" } }, - "diverged": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/diverged/-/diverged-0.1.3.tgz", - "integrity": "sha512-W8BLyp4Eo+YW9uQ3F5c9BXDT9ITCARA2CFQVb+v57FWYfkr0XjwNOASZacDCq+syk1i/obZ4BZ3w1qtlRO6hQw==", - "requires": { - "diff": "^3.5.0", - "pixelmatch": "^4.0.2", - "pngjs": "^3.3.3", - "super-simple-web-server": "^1.0.0" - }, - "dependencies": { - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - } - } - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -34875,11 +33415,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -35067,13 +33602,14 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", + "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { @@ -35082,11 +33618,46 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } } } }, @@ -35839,37 +34410,11 @@ } } }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -35937,14 +34482,6 @@ "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==" }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -38550,29 +37087,6 @@ "get-intrinsic": "^1.1.1" } }, - "get-uri": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", - "requires": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.2.0" - }, - "dependencies": { - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } - } - }, "git-up": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", @@ -39198,11 +37712,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -39323,22 +37832,6 @@ "loose-envify": "^1.0.0" } }, - "ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - } - } - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -41296,11 +39789,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "jpeg-js": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", - "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -41315,11 +39803,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, "jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -41438,22 +39921,6 @@ "object.assign": "^4.1.3" } }, - "jump.js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", - "integrity": "sha512-oUkJJ/Y4ATU5qjkXBntCZSKctbSyS3ewe2jrLaUu/cc9jsQiAn0fnTUxQnZz3mJdDdem1Q279zrD6h3n+Cgxtg==" - }, - "junit-report-builder": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", - "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", - "requires": { - "date-format": "4.0.3", - "lodash": "^4.17.21", - "make-dir": "^3.1.0", - "xmlbuilder": "^15.1.1" - } - }, "keyv": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", @@ -42474,11 +40941,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, "new-github-issue-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", @@ -42651,11 +41113,6 @@ "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz", "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -42779,21 +41236,6 @@ "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" }, - "opn": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", - "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" - } - } - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -42812,11 +41254,6 @@ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==" }, - "os": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" - }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -42863,14 +41300,6 @@ "p-limit": "^2.2.0" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -42893,58 +41322,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, - "pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", - "requires": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" - }, - "dependencies": { - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "requires": { - "debug": "^4.3.4" - } - }, - "http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - } - } - }, - "pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "requires": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - } - }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -43230,15 +41607,6 @@ "cross-spawn": "^6.0.5" } }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, "path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", @@ -43301,11 +41669,6 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, "physical-cpu-count": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", @@ -43326,21 +41689,6 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", - "requires": { - "pngjs": "^3.0.0" - }, - "dependencies": { - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - } - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -43394,53 +41742,6 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, - "playwright": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz", - "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==", - "requires": { - "fsevents": "2.3.2", - "playwright-core": "1.44.0" - } - }, - "playwright-core": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz", - "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==" - }, - "pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==" - }, - "portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "requires": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "dependencies": { - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -43853,11 +42154,6 @@ "stream-parser": "~0.3.1" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -43927,59 +42223,6 @@ "ipaddr.js": "1.9.1" } }, - "proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", - "requires": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" - }, - "dependencies": { - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "requires": { - "debug": "^4.3.4" - } - }, - "http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -44012,63 +42255,6 @@ "escape-goat": "^2.0.0" } }, - "puppeteer": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.8.0.tgz", - "integrity": "sha512-Z616wyTr0d7KpxmfcBG22rAkzuo/xzHJ3ycpu4KiJ3dZNHn/C1CpqcCwPlpiIIsmPojTAfWjo6EMR7M+AaC0Ww==", - "requires": { - "@puppeteer/browsers": "2.2.3", - "cosmiconfig": "9.0.0", - "devtools-protocol": "0.0.1273771", - "puppeteer-core": "22.8.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "requires": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "puppeteer-core": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", - "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", - "requires": { - "@puppeteer/browsers": "2.2.3", - "chromium-bidi": "0.5.19", - "debug": "4.3.4", - "devtools-protocol": "0.0.1273771", - "ws": "8.17.0" - }, - "dependencies": { - "ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "requires": {} - } - } - }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -44103,11 +42289,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" - }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -45856,11 +44037,6 @@ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==" }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, "snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -45908,35 +44084,6 @@ "debug": "~4.3.1" } }, - "socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "requires": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "requires": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "requires": { - "debug": "^4.3.4" - } - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -46108,16 +44255,6 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, - "streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", - "requires": { - "bare-events": "^2.2.0", - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -46304,14 +44441,6 @@ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" }, - "super-simple-web-server": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/super-simple-web-server/-/super-simple-web-server-1.1.4.tgz", - "integrity": "sha512-sQdVXz8ZDBMloocL63mifyVVzhxP55MlO2F0MiYJAJQiHTp42M2C3m2dZBIxGkcC7NUDr1/p0UhvGQvOsxZLpw==", - "requires": { - "express": "^4.16.3" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -46439,25 +44568,6 @@ "readable-stream": "^3.1.1" } }, - "temp": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", - "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", - "requires": { - "mkdirp": "^0.5.1", - "rimraf": "~2.6.2" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -46839,15 +44949,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -47251,31 +45352,11 @@ "prepend-http": "^2.0.0" } }, - "urlpattern-polyfill": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", - "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" - }, "username-sync": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -47693,11 +45774,6 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -47798,15 +45874,6 @@ "decamelize": "^1.2.0" } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -47847,11 +45914,6 @@ } } }, - "zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" - }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index 9d80d92a17..3f6dc41b2a 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "@pantheon-systems/pds-toolkit-react": "^1.0.0-dev.106", "algoliasearch": "^4.14.3", "babel-plugin-remove-graphql-queries": "^4.25.0", - "backstopjs": "^6.3.23", "bootstrap": "^3.4.1", "dotenv": "^10.0.0", "fs": "0.0.1-security", From 75cf3638fa7cb03a035022583f21ea4310b127a1 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 16:40:19 -0500 Subject: [PATCH 012/259] starting on a new sidebar --- src/components/sidebarNav/index.js | 70 ++++++++++++++++++++++++++++++ src/templates/certificationpage.js | 10 ++++- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/components/sidebarNav/index.js diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js new file mode 100644 index 0000000000..e1ffd14b27 --- /dev/null +++ b/src/components/sidebarNav/index.js @@ -0,0 +1,70 @@ +import React from "react" + +import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" + +const SidebarNav = ({ activePage }) => { + +// Infrastructure +// Release Workflow +// Account Governance +// Certification + + + return ( +
Compact? + Secondary menu} + menuItems={[ + { + linkContent: Onboarding + }, + { + linkContent: Policies and benefits, + links: [ + { + isActive: true, + linkContent: Item 2a + }, + { + linkContent: Item 2b + } + ] + }, + { + linkContent: Tools directory, + links: [ + { + linkContent: Item 3a, + links: [ + { + linkContent: Item 3ai + }, + { + linkContent: Item 3aii + } + ] + }, + { + linkContent: Item 3b + }, + { + linkContent: Item 3c + } + ] + }, + { + linkContent: Learning resources + }, + { + linkContent: Communications resources + }, + { + linkContent: Engagement survey + } + ]} + /> +
+ ) +} + +export default SidebarNav diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index be8c40999d..ab2fc74af5 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,6 +6,7 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" +import SidebarNav from "../components/sidebarNav" import Navbar from "../components/navbar" import NavButtons from "../components/navButtons" import TOC from "../components/toc" @@ -130,12 +131,19 @@ class CertificationTemplate extends React.Component { reviewed={ifCommandsISO} type={node.frontmatter.type} /> + +
+ + + + +
From 885cc8877c846944e5195b4790ea0a403b394ce7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 16:50:06 -0500 Subject: [PATCH 013/259] getting sidebar somewhat functional --- src/components/sidebarNav/index.js | 69 +++++++++++++++++++++++++++++- src/templates/certificationpage.js | 3 +- 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index e1ffd14b27..b4aaa39e54 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -10,6 +10,70 @@ const SidebarNav = ({ activePage }) => { // Certification + const CertificationStudyGuideItems = [ + { + id: "docs-certification-chapter-0", + link: "/certification/study-guide", + title: "Introduction", + }, + { + id: "docs-certification-chapter-1", + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", + }, + { + id: "docs-certification-chapter-2", + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", + }, + { + id: "docs-certification-chapter-3", + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", + }, + { + id: "docs-certification-chapter-4", + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", + }, + { + id: "docs-certification-chapter-5", + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", + }, + { + id: "docs-certification-chapter-6", + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", + }, + { + id: "docs-certification-chapter-7", + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", + }, + { + id: "docs-certification-chapter-8", + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", + }, + { + id: "docs-certification-chapter-9", + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", + }, + { + id: "docs-certification-chapter-10", + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", + }, + ] + const CertificationStudyGuideLinks = CertificationStudyGuideItems.map((item) => { + return { + isActive: item.link === activePage, + linkContent: {item.title} + } + }) + return (
Compact? { { linkContent: Onboarding }, + { + linkContent: Certification, + links: CertificationStudyGuideLinks + }, { linkContent: Policies and benefits, links: [ { - isActive: true, linkContent: Item 2a }, { diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index ab2fc74af5..69e74b27a6 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -133,8 +133,7 @@ class CertificationTemplate extends React.Component { />
- - + Date: Wed, 12 Jun 2024 16:55:23 -0500 Subject: [PATCH 014/259] more sidebar nav playing --- src/components/sidebarNav/index.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index b4aaa39e54..13d3088472 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -84,7 +84,18 @@ const SidebarNav = ({ activePage }) => { }, { linkContent: Certification, - links: CertificationStudyGuideLinks + + links: [ + { + linkContent: Study Guide, + links: CertificationStudyGuideLinks + }, + { + linkContent: Item 2b + } + ] + + }, { linkContent: Policies and benefits, From 9d7278e5520f24b79a20c4d9f94d5e8eb20f9c20 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 17:13:59 -0500 Subject: [PATCH 015/259] Certification multilevel nav --- src/components/sidebarNav/index.js | 75 +++++++++--------------------- 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 13d3088472..fcab6cb6c1 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -75,70 +75,41 @@ const SidebarNav = ({ activePage }) => { }) return ( -
Compact? +
Secondary menu} + headingText={WebOps Certification} menuItems={[ - { - linkContent: Onboarding - }, - { - linkContent: Certification, - links: [ - { - linkContent: Study Guide, - links: CertificationStudyGuideLinks - }, - { - linkContent: Item 2b - } - ] - }, - { - linkContent: Policies and benefits, - links: [ + + + { - linkContent: Item 2a + linkContent: About the Certification Program + }, - { - linkContent: Item 2b - } - ] - }, { - linkContent: Tools directory, - links: [ - { - linkContent: Item 3a, - links: [ - { - linkContent: Item 3ai - }, - { - linkContent: Item 3aii - } - ] - }, + linkContent: Taking the Exam + + }, { - linkContent: Item 3b + linkContent: Study Guide, + links: CertificationStudyGuideLinks }, { - linkContent: Item 3c + linkContent: Certification Directory + } - ] - }, - { - linkContent: Learning resources - }, - { - linkContent: Communications resources - }, - { - linkContent: Engagement survey - } + + + + + + + + + ]} />
From 3e34cce6f116e56793861cbdd6a4fdc9f65db320 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 17:28:03 -0500 Subject: [PATCH 016/259] Getting certification working with multilevel menu --- source/content/certification/about.md | 1 + source/content/certification/exam.md | 1 + src/components/sidebarNav/index.js | 42 ++++++++------------------- src/templates/certificationpage.js | 16 +++------- 4 files changed, 18 insertions(+), 42 deletions(-) diff --git a/source/content/certification/about.md b/source/content/certification/about.md index b6aaa5900c..127a26674c 100644 --- a/source/content/certification/about.md +++ b/source/content/certification/about.md @@ -2,6 +2,7 @@ title: "WebOps Certification: About the program" showtoc: true contributors: [] +layout: certificationpage permalink: docs/certification/about --- diff --git a/source/content/certification/exam.md b/source/content/certification/exam.md index 3b2c82c3ea..1e439cd28e 100644 --- a/source/content/certification/exam.md +++ b/source/content/certification/exam.md @@ -2,6 +2,7 @@ title: "WebOps Certification: Exam Overview" contributors: [] showtoc: true +layout: certificationpage permalink: docs/certification/exam --- ## Exam Instructions diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index fcab6cb6c1..6f5de4c144 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -2,7 +2,7 @@ import React from "react" import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" -const SidebarNav = ({ activePage }) => { +const SidebarNav = ({ title, activePage }) => { // Infrastructure // Release Workflow @@ -77,39 +77,21 @@ const SidebarNav = ({ activePage }) => { return (
WebOps Certification} + headingText={title} menuItems={[ - - - - - - - { - linkContent: About the Certification Program - - }, + { + linkContent: About the Certification Program + }, { linkContent: Taking the Exam - }, - { - linkContent: Study Guide, - links: CertificationStudyGuideLinks - }, - { - linkContent: Certification Directory - - } - - - - - - - - - + { + linkContent: Study Guide, + links: CertificationStudyGuideLinks + }, + { + linkContent: ↗ Certification Directory + } ]} />
diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 69e74b27a6..700de7b7e6 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -131,18 +131,10 @@ class CertificationTemplate extends React.Component { reviewed={ifCommandsISO} type={node.frontmatter.type} /> - -
- - - - -
+ From 03a177ab00a5481461d37695aefc77c177139389 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 21:56:26 -0500 Subject: [PATCH 017/259] more sidebar experimenting --- src/components/sidebarNav/index.js | 49 +++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 6f5de4c144..8d0d04a975 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -1,4 +1,5 @@ import React from "react" +import { Link, useStaticQuery, graphql } from "gatsby" import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" @@ -9,6 +10,30 @@ const SidebarNav = ({ title, activePage }) => { // Account Governance // Certification + const pages = useStaticQuery( + graphql` + { + allMdx( + filter: { + fileInfo: { absolutePath: { regex: "/.dns-providers/./" } } + frontmatter: { draft: { ne: true } } + } + sort: { fields: frontmatter___title, order: ASC } + ) { + nodes { + fields { + slug + } + frontmatter { + provider + } + } + } + } + ` + ) + + const CertificationStudyGuideItems = [ { @@ -70,9 +95,24 @@ const SidebarNav = ({ title, activePage }) => { const CertificationStudyGuideLinks = CertificationStudyGuideItems.map((item) => { return { isActive: item.link === activePage, - linkContent: {item.title} + linkContent: + {item.title} + } }) +/* + { + pages.allMdx.nodes.map((page, i) => { + return { + + + {page.frontmatter.provider} + + } + ) + }) + } +*/ return (
@@ -82,6 +122,13 @@ const SidebarNav = ({ title, activePage }) => { { linkContent: About the Certification Program }, + + { + linkContent: + About again + + }, + { linkContent: Taking the Exam }, From 1b194e266ab6d9800e04b142abdbbdf70b1b62ff Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 12 Jun 2024 22:01:40 -0500 Subject: [PATCH 018/259] sidebar nav graphql-ing --- src/components/sidebarNav/index.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 8d0d04a975..c29c1ba312 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -100,25 +100,31 @@ const SidebarNav = ({ title, activePage }) => { } }) -/* - { - pages.allMdx.nodes.map((page, i) => { - return { - - {page.frontmatter.provider} - + + const DNSPages = pages.allMdx.nodes.map((page, i) => { + + return { + isActive: page.fields.slug === activePage, + linkContent: + {page.frontmatter.provider} + } - ) + + }) - } -*/ + return (
DNS Pages, + links: DNSPages + }, + { linkContent: About the Certification Program }, From 31ff6656fe04c62fdff30c3d166a080c6fca1a50 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 15:57:07 -0500 Subject: [PATCH 019/259] adding guides to omni nav --- src/components/sidebarNav/index.js | 64 ++++++++++++++++++------------ src/templates/guide.js | 2 + 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index c29c1ba312..61271948ae 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -10,30 +10,51 @@ const SidebarNav = ({ title, activePage }) => { // Account Governance // Certification - const pages = useStaticQuery( + + + + + const SecureDev = useStaticQuery( graphql` { - allMdx( - filter: { - fileInfo: { absolutePath: { regex: "/.dns-providers/./" } } - frontmatter: { draft: { ne: true } } + + allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: { guide_directory: { eq: "guides/secure-development" } } + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory } - sort: { fields: frontmatter___title, order: ASC } - ) { - nodes { - fields { - slug - } - frontmatter { - provider - } + frontmatter { + subtitle } } } + } + + } ` ) +console.log("SecureDev"); +console.log(SecureDev); + const SecureDevLinks = SecureDev.allMdx.edges.map((page, i) => { + return { + isActive: page.node.fields.slug === activePage, + linkContent: + {page.node.frontmatter.subtitle} + + } + }) const CertificationStudyGuideItems = [ { @@ -102,17 +123,7 @@ const SidebarNav = ({ title, activePage }) => { }) - const DNSPages = pages.allMdx.nodes.map((page, i) => { - - return { - isActive: page.fields.slug === activePage, - linkContent: - {page.frontmatter.provider} - - } - - }) return ( @@ -121,8 +132,9 @@ const SidebarNav = ({ title, activePage }) => { headingText={title} menuItems={[ { - linkContent: DNS Pages, - links: DNSPages + linkContent: Secure Dev, + links: SecureDevLinks + }, { diff --git a/src/templates/guide.js b/src/templates/guide.js index 78631d1494..33e69c9f6a 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -38,6 +38,8 @@ class GuideTemplate extends React.Component { } render() { + + console.log(this.props); const node = this.props.data.mdx const isoDate = this.props.data.date const items = this.props.data.allMdx.edges.map((item) => { From 8709faeb0b1f7b055df917701a37cd44a157cf3a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 15:57:18 -0500 Subject: [PATCH 020/259] adding subtitles --- source/content/certification/about.md | 1 + source/content/certification/exam.md | 1 + 2 files changed, 2 insertions(+) diff --git a/source/content/certification/about.md b/source/content/certification/about.md index 127a26674c..1049ab094a 100644 --- a/source/content/certification/about.md +++ b/source/content/certification/about.md @@ -1,5 +1,6 @@ --- title: "WebOps Certification: About the program" +subtitle: "Learn about the Pantheon WebOps Certification program" showtoc: true contributors: [] layout: certificationpage diff --git a/source/content/certification/exam.md b/source/content/certification/exam.md index 1e439cd28e..67d9b6c50e 100644 --- a/source/content/certification/exam.md +++ b/source/content/certification/exam.md @@ -1,5 +1,6 @@ --- title: "WebOps Certification: Exam Overview" +subtitle: "Pantheon WebOps Certification Exam Overview" contributors: [] showtoc: true layout: certificationpage From b3d427916e0f47359aba48a92f50d61ffabb6c42 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:23:20 -0500 Subject: [PATCH 021/259] adding stuff --- src/components/sidebarNav/index.js | 4 ++-- src/fragments/guide_directory.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/fragments/guide_directory.js diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 61271948ae..63f834705e 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -18,7 +18,7 @@ const SidebarNav = ({ title, activePage }) => { graphql` { - allMdx( + sd: allMdx( filter: { fileAbsolutePath: { ne: null } fields: { guide_directory: { eq: "guides/secure-development" } } @@ -46,7 +46,7 @@ const SidebarNav = ({ title, activePage }) => { console.log("SecureDev"); console.log(SecureDev); - const SecureDevLinks = SecureDev.allMdx.edges.map((page, i) => { + const SecureDevLinks = SecureDev.sd.edges.map((page, i) => { return { isActive: page.node.fields.slug === activePage, diff --git a/src/fragments/guide_directory.js b/src/fragments/guide_directory.js new file mode 100644 index 0000000000..c7fe813c59 --- /dev/null +++ b/src/fragments/guide_directory.js @@ -0,0 +1,15 @@ +import { graphql } from "gatsby" + +export const asdfasdf = graphql` + fragment asdfasdfasdfasdf on Mdx { + id + body + fields { + slug + } + frontmatter { + title, + published_date, + categories + } +}` From fc7a7bfc7fdcba213f813e9da69a4fcb8563bf27 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:34:36 -0500 Subject: [PATCH 022/259] more nav --- src/components/sidebarNav/index.js | 85 ++++++++++++++++-------------- src/templates/certificationpage.js | 1 - 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 63f834705e..fb495e2cfa 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -13,7 +13,7 @@ const SidebarNav = ({ title, activePage }) => { - +/* const SecureDev = useStaticQuery( graphql` { @@ -55,73 +55,92 @@ console.log(SecureDev); } }) - - const CertificationStudyGuideItems = [ +*/ + const CertificationItems = [ + { + link: "/certification/about", + title: "About the Certification Program", + }, + { + link: "/certification/exam", + title: "Taking the Exam", + }, { - id: "docs-certification-chapter-0", link: "/certification/study-guide", title: "Introduction", }, { - id: "docs-certification-chapter-1", link: "/certification/study-guide/webops", title: "Chapter 1: WebOps", }, { - id: "docs-certification-chapter-2", link: "/certification/study-guide/platform", title: "Chapter 2: Pantheon Platform", }, { - id: "docs-certification-chapter-3", link: "/certification/study-guide/create", title: "Chapter 3: Site Creation", }, { - id: "docs-certification-chapter-4", link: "/certification/study-guide/cdn", title: "Chapter 4: Content Delivery Network", }, { - id: "docs-certification-chapter-5", link: "/certification/study-guide/cms", title: "Chapter 5: CMS Infrastructure", }, { - id: "docs-certification-chapter-6", link: "/certification/study-guide/deploy", title: "Chapter 6: The Deployment Pipeline", }, { - id: "docs-certification-chapter-7", link: "/certification/study-guide/people", title: "Chapter 7: Connecting People", }, { - id: "docs-certification-chapter-8", link: "/certification/study-guide/extend", title: "Chapter 8: Extend with CLI and Hooks", }, { - id: "docs-certification-chapter-9", link: "/certification/study-guide/automate", title: "Chapter 9: Additional Automation", }, { - id: "docs-certification-chapter-10", link: "/certification/study-guide/custom-upstreams", title: "Chapter 10: Custom Upstreams", + children: [ + { + link: "/certification/study-guide/custom-upstreams", + title: "Introduction", + }, + { + link: "/certification/study-guide/custom-upstreams/creating", + title: "Creating a Custom Upstream", + }, + { + link: "/certification/study-guide/custom-upstreams/using", + title: "Using a Custom Upstream", + } + ] }, ] - const CertificationStudyGuideLinks = CertificationStudyGuideItems.map((item) => { - return { - isActive: item.link === activePage, - linkContent: - {item.title} - - } - }) +function turnItemIntoLink(item, activePage) { + return { + isActive: item.link === activePage, + links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, + linkContent: + {item.title} + + } +} + + + + + const CertificationLinks = CertificationItems.map((item) => { + return turnItemIntoLink(item, activePage); + }) @@ -131,28 +150,16 @@ console.log(SecureDev); Secure Dev, - links: SecureDevLinks - - }, + // { + // linkContent: Secure Dev, + // links: SecureDevLinks - { - linkContent: About the Certification Program - }, + // }, - { - linkContent: - About again - - }, - { - linkContent: Taking the Exam - }, { linkContent: Study Guide, - links: CertificationStudyGuideLinks + links: CertificationLinks }, { linkContent: ↗ Certification Directory diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 700de7b7e6..1138c39886 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -102,7 +102,6 @@ class CertificationTemplate extends React.Component { render() { const node = this.props.data.mdx - const contentCols = node.frontmatter.showtoc ? 9 : 12 const isoDate = this.props.data.date const ifCommandsDate = node.fields.slug == "/terminus/commands" From ee637de3f7b5cce708e8c8b272a7ba540e1d1b92 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:42:33 -0500 Subject: [PATCH 023/259] link nesting --- src/components/sidebarNav/index.js | 48 +++++++----------------------- 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index fb495e2cfa..a5e93e4665 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -65,6 +65,10 @@ console.log(SecureDev); link: "/certification/exam", title: "Taking the Exam", }, + { + link: "/certification/study-guide", + title: "Study Guide", + children: [ { link: "/certification/study-guide", title: "Introduction", @@ -108,20 +112,11 @@ console.log(SecureDev); { link: "/certification/study-guide/custom-upstreams", title: "Chapter 10: Custom Upstreams", - children: [ - { - link: "/certification/study-guide/custom-upstreams", - title: "Introduction", - }, - { - link: "/certification/study-guide/custom-upstreams/creating", - title: "Creating a Custom Upstream", - }, - { - link: "/certification/study-guide/custom-upstreams/using", - title: "Using a Custom Upstream", - } - ] + }, + ]}, + { + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", }, ] @@ -135,38 +130,15 @@ function turnItemIntoLink(item, activePage) { } } - - - const CertificationLinks = CertificationItems.map((item) => { return turnItemIntoLink(item, activePage); }) - - - return ( -
Secure Dev, - // links: SecureDevLinks - - // }, - - - { - linkContent: Study Guide, - links: CertificationLinks - }, - { - linkContent: ↗ Certification Directory - } - ]} + menuItems={CertificationLinks} /> -
) } From 179b9c2e236e20a3f4d23d7d020de3350a5717ee Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:46:12 -0500 Subject: [PATCH 024/259] more link mucking --- src/components/sidebarNav/index.js | 15 ++++++++++++--- src/templates/certificationpage.js | 9 ++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index a5e93e4665..59f0cdf60b 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -120,6 +120,9 @@ console.log(SecureDev); }, ] + + + function turnItemIntoLink(item, activePage) { return { isActive: item.link === activePage, @@ -130,9 +133,15 @@ function turnItemIntoLink(item, activePage) { } } - const CertificationLinks = CertificationItems.map((item) => { - return turnItemIntoLink(item, activePage); - }) + const turnItemsIntoLinks = (items, activePage) => { + return items.map((item) => { + return turnItemIntoLink(item, activePage); + }) + } + + const CertificationLinks = turnItemsIntoLinks(CertificationItems, activePage); + + return ( ( From 924d411e6dad09d9fe1535da8fb93774b2fd64a7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:49:48 -0500 Subject: [PATCH 025/259] still working --- src/components/sidebarNav/index.js | 34 ++++++++++++++++++------------ src/templates/certificationpage.js | 2 +- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 59f0cdf60b..04a538cae3 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -3,6 +3,25 @@ import { Link, useStaticQuery, graphql } from "gatsby" import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" + + +function turnItemIntoLink(item, activePage) { + return { + isActive: item.link === activePage, + links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, + linkContent: + {item.title} + + } +} + +const turnItemsIntoLinks = (items, activePage) => { + return items.map((item) => { + return turnItemIntoLink(item, activePage); + }) +} + + const SidebarNav = ({ title, activePage }) => { // Infrastructure @@ -123,21 +142,7 @@ console.log(SecureDev); -function turnItemIntoLink(item, activePage) { - return { - isActive: item.link === activePage, - links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, - linkContent: - {item.title} - - } -} - const turnItemsIntoLinks = (items, activePage) => { - return items.map((item) => { - return turnItemIntoLink(item, activePage); - }) - } const CertificationLinks = turnItemsIntoLinks(CertificationItems, activePage); @@ -152,3 +157,4 @@ function turnItemIntoLink(item, activePage) { } export default SidebarNav +export { SidebarNav, turnItemsIntoLinks } diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index e6caf9048a..360d8ea63c 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,7 +6,7 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" -import SidebarNav from "../components/sidebarNav" +import {SidebarNav, turnItemsIntoLinks} from "../components/sidebarNav" import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" From 6dc44b675a2af70aca571ed897979fd79565b049 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:53:31 -0500 Subject: [PATCH 026/259] still working --- src/components/sidebarNav/index.js | 4 +- src/templates/certificationpage.js | 113 ++++++++++++++++------------- 2 files changed, 63 insertions(+), 54 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 04a538cae3..a304296b23 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -22,7 +22,7 @@ const turnItemsIntoLinks = (items, activePage) => { } -const SidebarNav = ({ title, activePage }) => { +const SidebarNav = ({ links, title, activePage }) => { // Infrastructure // Release Workflow @@ -151,7 +151,7 @@ console.log(SecureDev); return ( ) } diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 360d8ea63c..e4ea770fad 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -13,67 +13,74 @@ import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" -// @TODO relocate this list -// - To a YAML file and use GraphQL to pull data. -// - To a GraphQL query order by frontmatter weight/order/index field. -const items = [ - { - id: "docs-certification-chapter-0", - link: "/certification/study-guide", - title: "Introduction", - }, - { - id: "docs-certification-chapter-1", - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", - }, - { - id: "docs-certification-chapter-2", - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", - }, - { - id: "docs-certification-chapter-3", - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", - }, - { - id: "docs-certification-chapter-4", - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", - }, - { - id: "docs-certification-chapter-5", - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", - }, - { - id: "docs-certification-chapter-6", - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", - }, + +const CertificationItems = [ { - id: "docs-certification-chapter-7", - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", + link: "/certification/about", + title: "About the Certification Program", }, { - id: "docs-certification-chapter-8", - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", + link: "/certification/exam", + title: "Taking the Exam", }, { - id: "docs-certification-chapter-9", - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", + link: "/certification/study-guide", + title: "Study Guide", + children: [ + { + link: "/certification/study-guide", + title: "Introduction", + }, + { + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", + }, + { + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", + }, + { + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", + }, + { + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", + }, + { + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", + }, + { + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", + }, + { + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", + }, + { + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", + }, + { + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", + }, + { + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", + }, + ] }, { - id: "docs-certification-chapter-10", - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", }, ] + + class CertificationTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ @@ -116,6 +123,7 @@ class CertificationTemplate extends React.Component { + const CertificationLinks = turnItemsIntoLinks(CertificationItems, node.fields.slug); @@ -140,7 +148,8 @@ class CertificationTemplate extends React.Component { + activePage={node.fields.slug} + links={CertificationLinks} /> From d52d70ebbfbe3e26b9b7fc1349692157a986df0d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 16:56:01 -0500 Subject: [PATCH 027/259] removing commented out code --- src/components/sidebarNav/index.js | 129 +---------------------------- src/templates/certificationpage.js | 1 - 2 files changed, 1 insertion(+), 129 deletions(-) diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index a304296b23..9525d659d1 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -4,7 +4,6 @@ import { Link, useStaticQuery, graphql } from "gatsby" import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" - function turnItemIntoLink(item, activePage) { return { isActive: item.link === activePage, @@ -21,133 +20,7 @@ const turnItemsIntoLinks = (items, activePage) => { }) } - -const SidebarNav = ({ links, title, activePage }) => { - -// Infrastructure -// Release Workflow -// Account Governance -// Certification - - - - -/* - const SecureDev = useStaticQuery( - graphql` - { - - sd: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: { guide_directory: { eq: "guides/secure-development" } } - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - subtitle - } - } - } - } - - } - ` - ) -console.log("SecureDev"); -console.log(SecureDev); - - const SecureDevLinks = SecureDev.sd.edges.map((page, i) => { - - return { - isActive: page.node.fields.slug === activePage, - linkContent: - {page.node.frontmatter.subtitle} - - } - }) -*/ - const CertificationItems = [ - { - link: "/certification/about", - title: "About the Certification Program", - }, - { - link: "/certification/exam", - title: "Taking the Exam", - }, - { - link: "/certification/study-guide", - title: "Study Guide", - children: [ - { - link: "/certification/study-guide", - title: "Introduction", - }, - { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", - }, - { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", - }, - { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", - }, - { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", - }, - { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", - }, - { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", - }, - { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", - }, - { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", - }, - { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", - }, - { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", - }, - ]}, - { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", - }, - ] - - - - - - - const CertificationLinks = turnItemsIntoLinks(CertificationItems, activePage); - - - +const SidebarNav = ({ links, title }) => { return ( From 2140f8b16045cb76137188c1da473757651b20be Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 13 Jun 2024 17:01:04 -0500 Subject: [PATCH 028/259] cleanup --- src/fragments/guide_directory.js | 15 --------------- src/templates/certificationpage.js | 2 -- src/templates/guide.js | 1 - 3 files changed, 18 deletions(-) delete mode 100644 src/fragments/guide_directory.js diff --git a/src/fragments/guide_directory.js b/src/fragments/guide_directory.js deleted file mode 100644 index c7fe813c59..0000000000 --- a/src/fragments/guide_directory.js +++ /dev/null @@ -1,15 +0,0 @@ -import { graphql } from "gatsby" - -export const asdfasdf = graphql` - fragment asdfasdfasdfasdf on Mdx { - id - body - fields { - slug - } - frontmatter { - title, - published_date, - categories - } -}` diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 831bf35a19..1b83903bc1 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -7,8 +7,6 @@ import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" import {SidebarNav, turnItemsIntoLinks} from "../components/sidebarNav" -import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" - import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" diff --git a/src/templates/guide.js b/src/templates/guide.js index 33e69c9f6a..8c58f91698 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -39,7 +39,6 @@ class GuideTemplate extends React.Component { render() { - console.log(this.props); const node = this.props.data.mdx const isoDate = this.props.data.date const items = this.props.data.allMdx.edges.map((item) => { From c17c6fba71a375eb61356447ab461620f7683762 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 20 Jun 2024 17:52:08 -0500 Subject: [PATCH 029/259] starting on omni component --- src/components/omniSidebarNav/index.js | 107 +++++++++++++++++++++++++ src/components/sidebarNav/index.js | 2 + src/templates/certificationpage.js | 6 +- 3 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 src/components/omniSidebarNav/index.js diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js new file mode 100644 index 0000000000..d9b3617df3 --- /dev/null +++ b/src/components/omniSidebarNav/index.js @@ -0,0 +1,107 @@ +import React from "react" + +import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" + + +const OmniSidebarNav = ({activePage}) => { + + + const CertificationItems = [ + { + link: "/certification/about", + title: "About the Certification Program", + }, + { + link: "/certification/exam", + title: "Taking the Exam", + }, + { + link: "/certification/study-guide", + title: "Study Guide", + children: [ + { + link: "/certification/study-guide", + title: "Introduction", + }, + { + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", + }, + { + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", + }, + { + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", + }, + { + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", + }, + { + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", + }, + { + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", + }, + { + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", + }, + { + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", + }, + { + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", + }, + { + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", + }, + ] + }, + { + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", + }, + ] + + + const CertificationLinks = turnItemsIntoLinks(CertificationItems, activePage); + + + const OmniItems = [ + + { + link: "/get-started", + title: "Get Started", + }, + { + link: "/certification", + title: "WebOps Certification", + children: CertificationItems + } + ]; + + + +const OmniLinks = turnItemsIntoLinks(OmniItems, activePage); + + + return ( + + ) +} + + +export default OmniSidebarNav; + + diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index 9525d659d1..ba364795b3 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -29,5 +29,7 @@ const SidebarNav = ({ links, title }) => { ) } + + export default SidebarNav export { SidebarNav, turnItemsIntoLinks } diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 1b83903bc1..e3ebc5e25d 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -7,6 +7,7 @@ import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" import {SidebarNav, turnItemsIntoLinks} from "../components/sidebarNav" +import OmniSidebarNav from "../components/omniSidebarNav" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" @@ -143,10 +144,9 @@ class CertificationTemplate extends React.Component { reviewed={ifCommandsISO} type={node.frontmatter.type} /> - + activePage={node.fields.slug}/> From 3f74e8fe758f9c41fb0ec95ca716a562c4345b8a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 21 Jun 2024 10:19:52 -0500 Subject: [PATCH 030/259] trying function in separate file --- src/components/omniSidebarNav/fun.js | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/components/omniSidebarNav/fun.js diff --git a/src/components/omniSidebarNav/fun.js b/src/components/omniSidebarNav/fun.js new file mode 100644 index 0000000000..652cc49c98 --- /dev/null +++ b/src/components/omniSidebarNav/fun.js @@ -0,0 +1,45 @@ + +console.log("hello"); + + +const OmniItems = [ + + { + link: "/get-started", + title: "Get Started", + }, + { + link: "/certification", + title: "WebOps Certification", + children: + { + link: "/certification/about", + title: "About the Certification Program", + } + } +]; + + +function findSubMenuItemsToUse(maximumParent, NestedItems) { + // recursively search through OmniItems to find the object with the link that matches maximumParent + // return that object. + +console.log(maximumParent); +console.log(NestedItems); + + NestedItems.forEach((item) => { + + if (item.link === maximumParent) { + + console.log('in the if'); + console.log(maximumParent); + + return item; + } + }); +} + + +const activeParent = findSubMenuItemsToUse("/certification", OmniItems); + +console.log(activeParent); From 22d23b441a6b73453de0261f70b3040810cefc91 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 21 Jun 2024 10:27:35 -0500 Subject: [PATCH 031/259] functioning again --- src/components/omniSidebarNav/fun.js | 118 +++++++++++++++++++------ src/components/omniSidebarNav/index.js | 25 ++++-- src/templates/certificationpage.js | 3 +- 3 files changed, 110 insertions(+), 36 deletions(-) diff --git a/src/components/omniSidebarNav/fun.js b/src/components/omniSidebarNav/fun.js index 652cc49c98..b095152cd2 100644 --- a/src/components/omniSidebarNav/fun.js +++ b/src/components/omniSidebarNav/fun.js @@ -1,45 +1,105 @@ -console.log("hello"); - -const OmniItems = [ - - { - link: "/get-started", - title: "Get Started", - }, - { - link: "/certification", - title: "WebOps Certification", - children: + const CertificationItems = [ { link: "/certification/about", title: "About the Certification Program", - } - } -]; + }, + { + link: "/certification/exam", + title: "Taking the Exam", + }, + { + link: "/certification/study-guide", + title: "Study Guide", + children: [ + { + link: "/certification/study-guide", + title: "Introduction", + }, + { + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", + }, + { + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", + }, + { + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", + }, + { + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", + }, + { + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", + }, + { + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", + }, + { + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", + }, + { + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", + }, + { + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", + }, + { + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", + }, + ] + }, + { + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", + }, + ] -function findSubMenuItemsToUse(maximumParent, NestedItems) { - // recursively search through OmniItems to find the object with the link that matches maximumParent - // return that object. -console.log(maximumParent); -console.log(NestedItems); + const OmniItems = [ - NestedItems.forEach((item) => { + { + link: "/get-started", + title: "Get Started", + }, + { + link: "/certification", + title: "WebOps Certification", + children: CertificationItems + } + ]; - if (item.link === maximumParent) { - console.log('in the if'); - console.log(maximumParent); - return item; + function findSubMenuItemsToUse(maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; + } else if (item.subItems && item.subItems.length > 0) { + const found = findSubMenuItemsToUse(maximumParent, item.subItems); + if (found) return found; + } } - }); -} + return undefined; + } + + const activeParent = findSubMenuItemsToUse("/certification", OmniItems); + + + console.log(activeParent); + + -const activeParent = findSubMenuItemsToUse("/certification", OmniItems); -console.log(activeParent); diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index d9b3617df3..2965f06559 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -3,7 +3,7 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -const OmniSidebarNav = ({activePage}) => { +const OmniSidebarNav = ({activePage, maximumParent}) => { const CertificationItems = [ @@ -71,10 +71,6 @@ const OmniSidebarNav = ({activePage}) => { }, ] - - const CertificationLinks = turnItemsIntoLinks(CertificationItems, activePage); - - const OmniItems = [ { @@ -90,7 +86,24 @@ const OmniSidebarNav = ({activePage}) => { -const OmniLinks = turnItemsIntoLinks(OmniItems, activePage); + function findSubMenuItemsToUse(maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; + } else if (item.subItems && item.subItems.length > 0) { + const found = findSubMenuItemsToUse(maximumParent, item.subItems); + if (found) return found; + } + } + return undefined; + } + + const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; + + + console.log(activeParent); + + const OmniLinks = turnItemsIntoLinks(activeParent, activePage); return ( diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index e3ebc5e25d..5939a78237 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -146,7 +146,8 @@ class CertificationTemplate extends React.Component { /> + activePage={node.fields.slug} + maximumParent="/certification"/> From 3c2581ccddfad28ff84302959f39b5dd218b53c7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 21 Jun 2024 10:44:13 -0500 Subject: [PATCH 032/259] submenus --- src/components/omniSidebarNav/index.js | 78 +------------------ .../omniSidebarNav/submenus/certification.js | 66 ++++++++++++++++ src/templates/certificationpage.js | 74 ------------------ 3 files changed, 69 insertions(+), 149 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/certification.js diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 2965f06559..fb5ed4404a 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,78 +1,12 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" +import CertificationItems from "./submenus/certification"; const OmniSidebarNav = ({activePage, maximumParent}) => { - - const CertificationItems = [ - { - link: "/certification/about", - title: "About the Certification Program", - }, - { - link: "/certification/exam", - title: "Taking the Exam", - }, - { - link: "/certification/study-guide", - title: "Study Guide", - children: [ - { - link: "/certification/study-guide", - title: "Introduction", - }, - { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", - }, - { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", - }, - { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", - }, - { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", - }, - { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", - }, - { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", - }, - { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", - }, - { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", - }, - { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", - }, - { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", - }, - ] - }, - { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", - }, - ] - const OmniItems = [ - { link: "/get-started", title: "Get Started", @@ -84,8 +18,6 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { } ]; - - function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { @@ -100,17 +32,13 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; - - console.log(activeParent); - const OmniLinks = turnItemsIntoLinks(activeParent, activePage); - return ( + title={OmniLinks[0].linkContent} + links={OmniLinks[0].links} /> ) } diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js new file mode 100644 index 0000000000..beb91dfe57 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/certification.js @@ -0,0 +1,66 @@ +const CertificationItems = [ + { + link: "/certification/about", + title: "About the Certification Program", + }, + { + link: "/certification/exam", + title: "Taking the Exam", + }, + { + link: "/certification/study-guide", + title: "Study Guide", + children: [ + { + link: "/certification/study-guide", + title: "Introduction", + }, + { + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", + }, + { + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", + }, + { + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", + }, + { + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", + }, + { + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", + }, + { + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", + }, + { + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", + }, + { + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", + }, + { + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", + }, + { + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", + }, + ] + }, + { + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", + }, +] + +export default CertificationItems; diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 5939a78237..7f90674ef8 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,79 +6,12 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" -import {SidebarNav, turnItemsIntoLinks} from "../components/sidebarNav" import OmniSidebarNav from "../components/omniSidebarNav" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" -const CertificationItems = [ - { - link: "/certification/about", - title: "About the Certification Program", - }, - { - link: "/certification/exam", - title: "Taking the Exam", - }, - { - link: "/certification/study-guide", - title: "Study Guide", - children: [ - { - link: "/certification/study-guide", - title: "Introduction", - }, - { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", - }, - { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", - }, - { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", - }, - { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", - }, - { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", - }, - { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", - }, - { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", - }, - { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", - }, - { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", - }, - { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", - }, - ] - }, - { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", - }, -] - - class CertificationTemplate extends React.Component { componentDidMount() { @@ -119,13 +52,6 @@ class CertificationTemplate extends React.Component { ? this.props.data.jsonISO.published_at : isoDate.frontmatter.reviewed - - - - const CertificationLinks = turnItemsIntoLinks(CertificationItems, node.fields.slug); - - - // Preprocess content region layout if has TOC or not. const hasTOC = node.frontmatter.showtoc const ContainerDiv = ({ children }) => ( From 8e33575275278ed81d2f742ab67f8cabb1dc5087 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 16:31:15 -0500 Subject: [PATCH 033/259] wrangling the guides --- src/components/omniSidebarNav/index.js | 80 +++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index fb5ed4404a..8f1e4674ae 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,23 +1,99 @@ import React from "react" - +import { Link, useStaticQuery, graphql } from "gatsby" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import CertificationItems from "./submenus/certification"; const OmniSidebarNav = ({activePage, maximumParent}) => { + const AllGuides = useStaticQuery( + graphql` + { + allGuides: allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + subtitle + } + } + } + } + } + ` + ); + + console.log(AllGuides); + + // loop over all guides and create a list of links + + const GuideItems = AllGuides.allGuides.edges.map(({ node }) => { + return { + link: node.fields.slug, + title: node.frontmatter.subtitle, + } + } + ); + const guideToGet = "guides/decoupled/wp-nextjs-frontend-starters" + const AllGuideItems = []; + for (let item of AllGuides.allGuides.edges) { + console.log(item.node.fields.guide_directory); + if (item.node.fields.guide_directory === guideToGet) { + AllGuideItems.push({ + link: item.node.fields.slug, + title: item.node.frontmatter.subtitle, + }); + } + + } + const OmniItems = [ + { + link: "/", + title: "Pantheon Docs", + children: [ + { link: "/get-started", title: "Get Started", + }, + { + link: "/guides/decoupled/wp-nextjs-frontend-starters", + title: "WordPress + Next.js Frontend Starter for Front-End Sites", + children: AllGuideItems + }, + { + link: "/guides", + title: "Guides", + children: GuideItems }, { link: "/certification", title: "WebOps Certification", children: CertificationItems - } + }, + { + link: "/get-started", + title: "about", + }, + ] + }, ]; + // merge the guide items with the OmniItems + + function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { From 79308c9926e6887c589043d79d1a201ca2e5ce2e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 16:38:39 -0500 Subject: [PATCH 034/259] getting decoupled guides --- src/components/omniSidebarNav/index.js | 42 +++++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 8f1e4674ae..4fe8132191 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -36,15 +36,26 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { console.log(AllGuides); - // loop over all guides and create a list of links + const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { + + const ChildItems = []; + for (let item of AllTheGuides) { + console.log(item.node.fields.guide_directory); + if (item.node.fields.guide_directory === guideDirectory) { + ChildItems.push({ + link: item.node.fields.slug, + title: item.node.frontmatter.subtitle, + }); + } - const GuideItems = AllGuides.allGuides.edges.map(({ node }) => { - return { - link: node.fields.slug, - title: node.frontmatter.subtitle, } + + return ChildItems; + } - ); + + + const guideToGet = "guides/decoupled/wp-nextjs-frontend-starters" const AllGuideItems = []; for (let item of AllGuides.allGuides.edges) { @@ -73,11 +84,20 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { title: "WordPress + Next.js Frontend Starter for Front-End Sites", children: AllGuideItems }, - { - link: "/guides", - title: "Guides", - children: GuideItems - }, + + + + { + link: "/guides/decoupled/wp-backend-starters", + title: "WordPress Backend Starters", + children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, "guides/decoupled/wp-backend-starters") + }, + + + + // + + { link: "/certification", title: "WebOps Certification", From 4dadd6a6ed7ae436b8ec01696066967e25b2cefb Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 16:52:18 -0500 Subject: [PATCH 035/259] more decouple guiding --- src/components/omniSidebarNav/index.js | 45 ++++++++++---------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 4fe8132191..8076531638 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,5 +1,5 @@ import React from "react" -import { Link, useStaticQuery, graphql } from "gatsby" +import { useStaticQuery, graphql } from "gatsby" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import CertificationItems from "./submenus/certification"; @@ -25,6 +25,7 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { guide_directory } frontmatter { + title subtitle } } @@ -34,10 +35,7 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { ` ); - console.log(AllGuides); - const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { - const ChildItems = []; for (let item of AllTheGuides) { console.log(item.node.fields.guide_directory); @@ -47,28 +45,28 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { title: item.node.frontmatter.subtitle, }); } - } - return ChildItems; - } + const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { - - const guideToGet = "guides/decoupled/wp-nextjs-frontend-starters" - const AllGuideItems = []; - for (let item of AllGuides.allGuides.edges) { - console.log(item.node.fields.guide_directory); - if (item.node.fields.guide_directory === guideToGet) { - AllGuideItems.push({ - link: item.node.fields.slug, - title: item.node.frontmatter.subtitle, - }); + for (let item of AllTheGuides) { + if (item.node.fields.slug === "/" + guideDirectory) { + return item.node.frontmatter.title; + } } + } + const getAGuide = (AllTheGuides, guideDirectory) => { + return { + link: guideDirectory, + title: getTitleForGuideDirectory(AllTheGuides, guideDirectory), + children: getChildrenForGuideDirectory(AllTheGuides, guideDirectory) + } } + const OmniItems = [ { link: "/", @@ -79,20 +77,14 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { link: "/get-started", title: "Get Started", }, - { - link: "/guides/decoupled/wp-nextjs-frontend-starters", - title: "WordPress + Next.js Frontend Starter for Front-End Sites", - children: AllGuideItems - }, - - - { link: "/guides/decoupled/wp-backend-starters", title: "WordPress Backend Starters", children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, "guides/decoupled/wp-backend-starters") }, + getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-nextjs-frontend-starters"), + // guides/decoupled/wp-nextjs-frontend-starters // @@ -113,7 +105,6 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { // merge the guide items with the OmniItems - function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { @@ -140,5 +131,3 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { export default OmniSidebarNav; - - From 594a25bd3f2830c930c34a4fbc2f585b63ac2731 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 16:55:39 -0500 Subject: [PATCH 036/259] more simplification --- src/components/omniSidebarNav/index.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 8076531638..374b6847ef 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -60,7 +60,7 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { const getAGuide = (AllTheGuides, guideDirectory) => { return { - link: guideDirectory, + link: "/" + guideDirectory, title: getTitleForGuideDirectory(AllTheGuides, guideDirectory), children: getChildrenForGuideDirectory(AllTheGuides, guideDirectory) } @@ -78,17 +78,13 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { title: "Get Started", }, { - link: "/guides/decoupled/wp-backend-starters", - title: "WordPress Backend Starters", - children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, "guides/decoupled/wp-backend-starters") + link: "/decoupled", + title: "Front-End Sites", + children: [ + getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-nextjs-frontend-starters"), + getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-backend-starters"), + ] }, - getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-nextjs-frontend-starters"), - - // guides/decoupled/wp-nextjs-frontend-starters - - - // - { link: "/certification", From 7580ee3ca3462e511f01277c29805bca22f5213f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 21:51:34 -0500 Subject: [PATCH 037/259] splitting up --- src/components/omniSidebarNav/allGuides.js | 41 ++++++++++++++++++++++ src/components/omniSidebarNav/index.js | 32 ++--------------- 2 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 src/components/omniSidebarNav/allGuides.js diff --git a/src/components/omniSidebarNav/allGuides.js b/src/components/omniSidebarNav/allGuides.js new file mode 100644 index 0000000000..168015b1b3 --- /dev/null +++ b/src/components/omniSidebarNav/allGuides.js @@ -0,0 +1,41 @@ +import React from "react" +import { useStaticQuery, graphql } from "gatsby" + + + +const TheGuides = () => { + + const AllTheGuides = useStaticQuery( + graphql` + { + allGuides: allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } + } + } + } + ` + ); + + + return AllTheGuides; +} + +export default TheGuides; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 374b6847ef..7e01881f52 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -2,43 +2,16 @@ import React from "react" import { useStaticQuery, graphql } from "gatsby" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import CertificationItems from "./submenus/certification"; +import TheGuides from "./allGuides"; const OmniSidebarNav = ({activePage, maximumParent}) => { - const AllGuides = useStaticQuery( - graphql` - { - allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - title - subtitle - } - } - } - } - } - ` - ); + const AllGuides = TheGuides(); const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { const ChildItems = []; for (let item of AllTheGuides) { - console.log(item.node.fields.guide_directory); if (item.node.fields.guide_directory === guideDirectory) { ChildItems.push({ link: item.node.fields.slug, @@ -125,5 +98,4 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { ) } - export default OmniSidebarNav; From 8f45d6fd5ad2ec9727e3ac07cb188805e5fbb152 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 22:10:09 -0500 Subject: [PATCH 038/259] segmenting out guide function --- .../omniSidebarNav/allGuidePages.js | 41 ++++++++++ .../omniSidebarNav/getGuideDirectory.js | 77 +++++++++++++++++++ src/components/omniSidebarNav/index.js | 55 +++---------- 3 files changed, 127 insertions(+), 46 deletions(-) create mode 100644 src/components/omniSidebarNav/allGuidePages.js create mode 100644 src/components/omniSidebarNav/getGuideDirectory.js diff --git a/src/components/omniSidebarNav/allGuidePages.js b/src/components/omniSidebarNav/allGuidePages.js new file mode 100644 index 0000000000..168015b1b3 --- /dev/null +++ b/src/components/omniSidebarNav/allGuidePages.js @@ -0,0 +1,41 @@ +import React from "react" +import { useStaticQuery, graphql } from "gatsby" + + + +const TheGuides = () => { + + const AllTheGuides = useStaticQuery( + graphql` + { + allGuides: allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } + } + } + } + ` + ); + + + return AllTheGuides; +} + +export default TheGuides; diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js new file mode 100644 index 0000000000..7689e56945 --- /dev/null +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -0,0 +1,77 @@ +import React from "react" +import { useStaticQuery, graphql } from "gatsby" + + + +const getAllGuidePages = () => { + + const AllTheGuides = useStaticQuery( + graphql` + { + allGuides: allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } + } + } + } + ` + ); + + + return AllTheGuides; +} + +const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { + const ChildItems = []; + for (let item of AllTheGuides) { + if (item.node.fields.guide_directory === guideDirectory) { + ChildItems.push({ + link: item.node.fields.slug, + title: item.node.frontmatter.subtitle, + }); + } + } + return ChildItems; +} + +const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { + + for (let item of AllTheGuides) { + if (item.node.fields.slug === "/" + guideDirectory) { + return item.node.frontmatter.title; + } + } +} + +const getGuideDirectory = (guideDirectory) => { + + const AllGuides = getAllGuidePages(); + return { + link: "/" + guideDirectory, + title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), + children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, guideDirectory) + } +} + + + + + +export default getGuideDirectory; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 7e01881f52..2e735e3510 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,45 +1,11 @@ import React from "react" -import { useStaticQuery, graphql } from "gatsby" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import CertificationItems from "./submenus/certification"; -import TheGuides from "./allGuides"; +import getGuideDirectory from "./getGuideDirectory"; const OmniSidebarNav = ({activePage, maximumParent}) => { - const AllGuides = TheGuides(); - - const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { - const ChildItems = []; - for (let item of AllTheGuides) { - if (item.node.fields.guide_directory === guideDirectory) { - ChildItems.push({ - link: item.node.fields.slug, - title: item.node.frontmatter.subtitle, - }); - } - } - return ChildItems; - } - - const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { - - for (let item of AllTheGuides) { - if (item.node.fields.slug === "/" + guideDirectory) { - return item.node.frontmatter.title; - } - } - } - - const getAGuide = (AllTheGuides, guideDirectory) => { - return { - link: "/" + guideDirectory, - title: getTitleForGuideDirectory(AllTheGuides, guideDirectory), - children: getChildrenForGuideDirectory(AllTheGuides, guideDirectory) - } - } - - const OmniItems = [ { link: "/", @@ -50,15 +16,14 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { link: "/get-started", title: "Get Started", }, - { - link: "/decoupled", - title: "Front-End Sites", - children: [ - getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-nextjs-frontend-starters"), - getAGuide(AllGuides.allGuides.edges, "guides/decoupled/wp-backend-starters"), - ] - }, - + { + link: "/decoupled", + title: "Front-End Sites", + children: [ + getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), + getGuideDirectory("guides/decoupled/wp-backend-starters"), + ] + }, { link: "/certification", title: "WebOps Certification", @@ -72,8 +37,6 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { }, ]; - // merge the guide items with the OmniItems - function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { From f094fdf2cbac5f72f57d8fc36a01638e453e7fb6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 22:10:54 -0500 Subject: [PATCH 039/259] delete unused files --- .../omniSidebarNav/allGuidePages.js | 41 ------------------- src/components/omniSidebarNav/allGuides.js | 41 ------------------- 2 files changed, 82 deletions(-) delete mode 100644 src/components/omniSidebarNav/allGuidePages.js delete mode 100644 src/components/omniSidebarNav/allGuides.js diff --git a/src/components/omniSidebarNav/allGuidePages.js b/src/components/omniSidebarNav/allGuidePages.js deleted file mode 100644 index 168015b1b3..0000000000 --- a/src/components/omniSidebarNav/allGuidePages.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" - - - -const TheGuides = () => { - - const AllTheGuides = useStaticQuery( - graphql` - { - allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - title - subtitle - } - } - } - } - } - ` - ); - - - return AllTheGuides; -} - -export default TheGuides; diff --git a/src/components/omniSidebarNav/allGuides.js b/src/components/omniSidebarNav/allGuides.js deleted file mode 100644 index 168015b1b3..0000000000 --- a/src/components/omniSidebarNav/allGuides.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" - - - -const TheGuides = () => { - - const AllTheGuides = useStaticQuery( - graphql` - { - allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - title - subtitle - } - } - } - } - } - ` - ); - - - return AllTheGuides; -} - -export default TheGuides; From eedb01331fbec27bdb177b2534f81fc3c34baa3f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 24 Jun 2024 22:32:51 -0500 Subject: [PATCH 040/259] guide! --- .../omniSidebarNav/getGuideDirectory.js | 6 --- src/components/omniSidebarNav/index.js | 43 ++++++++++++++----- src/templates/certificationpage.js | 2 +- src/templates/guide.js | 14 ++++++ 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 7689e56945..4cdfa0e178 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -52,7 +52,6 @@ const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { } const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { - for (let item of AllTheGuides) { if (item.node.fields.slug === "/" + guideDirectory) { return item.node.frontmatter.title; @@ -61,7 +60,6 @@ const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { } const getGuideDirectory = (guideDirectory) => { - const AllGuides = getAllGuidePages(); return { link: "/" + guideDirectory, @@ -70,8 +68,4 @@ const getGuideDirectory = (guideDirectory) => { } } - - - - export default getGuideDirectory; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 2e735e3510..6905b09a6c 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -7,10 +7,10 @@ import getGuideDirectory from "./getGuideDirectory"; const OmniSidebarNav = ({activePage, maximumParent}) => { const OmniItems = [ - { - link: "/", - title: "Pantheon Docs", - children: [ + // { + // link: "/", + // title: "Pantheon Docs", + // children: [ { link: "/get-started", @@ -34,22 +34,45 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { title: "about", }, ] - }, - ]; + // }, + //] + ; function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { return item; - } else if (item.subItems && item.subItems.length > 0) { - const found = findSubMenuItemsToUse(maximumParent, item.subItems); - if (found) return found; } } return undefined; } - const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; + function findParentWithActiveLink(NestedItems, activePage) { + // This function will return the top-level array of items that contains the active page + // no matter how deeply nested it is. + for (let item of NestedItems) { + if (containsActiveLink(item, activePage)) { + return item; + } + } + } + + function containsActiveLink(item, activePage) { + if (item.link === activePage) { + return true; + } else if (item.children && item.children.length > 0) { + for (let child of item.children) { + if (containsActiveLink(child, activePage)) { + return true; + } + } + } + return false; + } + + + // const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; + const activeParent = [findParentWithActiveLink(OmniItems, activePage)]; const OmniLinks = turnItemsIntoLinks(activeParent, activePage); diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 7f90674ef8..96dbadc6df 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -73,7 +73,7 @@ class CertificationTemplate extends React.Component { + maximumParent="/"/> diff --git a/src/templates/guide.js b/src/templates/guide.js index 8c58f91698..98b4d2656c 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -9,6 +9,7 @@ import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" +import OmniSidebarNav from "../components/omniSidebarNav" class GuideTemplate extends React.Component { componentDidMount() { @@ -68,12 +69,25 @@ class GuideTemplate extends React.Component { reviewed={isoDate.frontmatter.reviewed} type={node.frontmatter.type} /> +
+LOGIC NEEDED here for whether the the guide is in the omni +
+ + + + + + +
From dad90c30850e63ec906e6ef0e48d17127a759b54 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 10:06:35 -0500 Subject: [PATCH 041/259] whitespace --- src/components/omniSidebarNav/getGuideDirectory.js | 4 ---- src/components/omniSidebarNav/index.js | 7 +------ 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 4cdfa0e178..8c8cf8b261 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,8 +1,5 @@ -import React from "react" import { useStaticQuery, graphql } from "gatsby" - - const getAllGuidePages = () => { const AllTheGuides = useStaticQuery( @@ -34,7 +31,6 @@ const getAllGuidePages = () => { ` ); - return AllTheGuides; } diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 6905b09a6c..7874222080 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -7,10 +7,6 @@ import getGuideDirectory from "./getGuideDirectory"; const OmniSidebarNav = ({activePage, maximumParent}) => { const OmniItems = [ - // { - // link: "/", - // title: "Pantheon Docs", - // children: [ { link: "/get-started", @@ -34,8 +30,7 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { title: "about", }, ] - // }, - //] + ; function findSubMenuItemsToUse(maximumParent, NestedItems) { From 759b79b68fd1a7b35d1b77c24a70759c597ba7d9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 10:19:31 -0500 Subject: [PATCH 042/259] more re-arranging --- src/components/omniSidebarNav/getOmniItems.js | 37 ++++++ src/components/omniSidebarNav/index.js | 114 ++++++++++-------- 2 files changed, 99 insertions(+), 52 deletions(-) create mode 100644 src/components/omniSidebarNav/getOmniItems.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js new file mode 100644 index 0000000000..1bf10430ba --- /dev/null +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -0,0 +1,37 @@ +import React from "react" +import CertificationItems from "./submenus/certification"; +import getGuideDirectory from "./getGuideDirectory"; + + +const getOmniItems = () => { + + const OmniItems = [ + + { + link: "/get-started", + title: "Get Started", + }, + { + link: "/decoupled", + title: "Front-End Sites", + children: [ + getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), + getGuideDirectory("guides/decoupled/wp-backend-starters"), + ] + }, + { + link: "/certification", + title: "WebOps Certification", + children: CertificationItems + }, + { + link: "/get-started", + title: "about", + }, + ] + ; + + return OmniItems; +} + +export default getOmniItems; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 7874222080..62cfd10afb 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,69 +1,78 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import CertificationItems from "./submenus/certification"; -import getGuideDirectory from "./getGuideDirectory"; +import getOmniItems from "./getOmniItems"; -const OmniSidebarNav = ({activePage, maximumParent}) => { - const OmniItems = [ - - { - link: "/get-started", - title: "Get Started", - }, - { - link: "/decoupled", - title: "Front-End Sites", - children: [ - getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), - getGuideDirectory("guides/decoupled/wp-backend-starters"), - ] - }, - { - link: "/certification", - title: "WebOps Certification", - children: CertificationItems - }, - { - link: "/get-started", - title: "about", - }, - ] - - ; - - function findSubMenuItemsToUse(maximumParent, NestedItems) { - for (let item of NestedItems) { - if (item.link === maximumParent) { - return item; - } + + + +function findSubMenuItemsToUse(maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; } - return undefined; } + return undefined; +} - function findParentWithActiveLink(NestedItems, activePage) { - // This function will return the top-level array of items that contains the active page - // no matter how deeply nested it is. - for (let item of NestedItems) { - if (containsActiveLink(item, activePage)) { - return item; - } +function findParentWithActiveLink(NestedItems, activePage) { + // This function will return the top-level array of items that contains the active page + // no matter how deeply nested it is. + for (let item of NestedItems) { + if (containsActiveLink(item, activePage)) { + return item; } } +} - function containsActiveLink(item, activePage) { - if (item.link === activePage) { - return true; - } else if (item.children && item.children.length > 0) { - for (let child of item.children) { - if (containsActiveLink(child, activePage)) { - return true; - } +function containsActiveLink(item, activePage) { + if (item.link === activePage) { + return true; + } else if (item.children && item.children.length > 0) { + for (let child of item.children) { + if (containsActiveLink(child, activePage)) { + return true; } } - return false; } + return false; +} + + + + + + +const getOmniSidebarActiveSection = ({activePage}) => { + + console.log(activePage); +} + + +const OmniSidebarNav = ({activePage, maximumParent}) => { + + const OmniItems = getOmniItems(); + + + + + // const activeParent = []; + // if (!maximumParent) { + // // merge all the top-level items into one array + // const sub = [findSubMenuItemsToUse(maximumParent, OmniItems)] + + // // merge sub into activeParent + // activeParent.push(sub); + + + // } else { + + + // const activer = [findParentWithActiveLink(OmniItems, activePage)]; + // const activeParent.push(activer); + // } + // const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; @@ -80,3 +89,4 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { } export default OmniSidebarNav; + From 3cd145a03227c28b7fb389796433da43968bd577 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 10:34:52 -0500 Subject: [PATCH 043/259] no errors --- src/components/omniSidebarNav/getOmniItems.js | 2 - .../getOmniSidebarActiveSection.js | 51 +++++++++++++++++++ src/components/omniSidebarNav/index.js | 13 ++--- 3 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/components/omniSidebarNav/getOmniSidebarActiveSection.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 1bf10430ba..4e4244d06e 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,8 +1,6 @@ -import React from "react" import CertificationItems from "./submenus/certification"; import getGuideDirectory from "./getGuideDirectory"; - const getOmniItems = () => { const OmniItems = [ diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js new file mode 100644 index 0000000000..bf97e2e03d --- /dev/null +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -0,0 +1,51 @@ +import React from "react" + +//import getOmniItems from "./getOmniItems"; + + + + + +const getOmniSidebarActiveSection = ({OmniItems, activePage}) => { + + + + function findParentWithActiveLink(NestedItems, activePage) { + // This function will return the top-level array of items that contains the active page + // no matter how deeply nested it is. + for (let item of NestedItems) { + if (containsActiveLink(item, activePage)) { + return item; + } + } + } + + function containsActiveLink(item, activePage) { + if (item.link === activePage) { + return true; + } else if (item.children && item.children.length > 0) { + for (let child of item.children) { + if (containsActiveLink(child, activePage)) { + return true; + } + } + } + return false; + } + + + + + + + + console.log(activePage); + // const OmniItems = getOmniItems(); + return [findParentWithActiveLink(OmniItems, activePage)]; +} + + + + +export default getOmniSidebarActiveSection; + diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 62cfd10afb..c6481623db 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,6 +1,7 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import getOmniItems from "./getOmniItems"; +import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; @@ -42,14 +43,6 @@ function containsActiveLink(item, activePage) { - - -const getOmniSidebarActiveSection = ({activePage}) => { - - console.log(activePage); -} - - const OmniSidebarNav = ({activePage, maximumParent}) => { const OmniItems = getOmniItems(); @@ -76,7 +69,9 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { // const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; - const activeParent = [findParentWithActiveLink(OmniItems, activePage)]; +// const activeParent = [findParentWithActiveLink(OmniItems, activePage)]; + + const activeParent = getOmniSidebarActiveSection({OmniItems, activePage}); const OmniLinks = turnItemsIntoLinks(activeParent, activePage); From c906c6abc38a526cf5359b97f2921fcf9b3cec27 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 10:37:40 -0500 Subject: [PATCH 044/259] remove unused stuff --- src/components/omniSidebarNav/index.js | 32 -------------------------- 1 file changed, 32 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index c6481623db..8e14caa426 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -4,10 +4,6 @@ import getOmniItems from "./getOmniItems"; import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; - - - - function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { @@ -17,30 +13,6 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { return undefined; } -function findParentWithActiveLink(NestedItems, activePage) { - // This function will return the top-level array of items that contains the active page - // no matter how deeply nested it is. - for (let item of NestedItems) { - if (containsActiveLink(item, activePage)) { - return item; - } - } -} - -function containsActiveLink(item, activePage) { - if (item.link === activePage) { - return true; - } else if (item.children && item.children.length > 0) { - for (let child of item.children) { - if (containsActiveLink(child, activePage)) { - return true; - } - } - } - return false; -} - - const OmniSidebarNav = ({activePage, maximumParent}) => { @@ -67,10 +39,6 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { // } - - // const activeParent = [findSubMenuItemsToUse(maximumParent, OmniItems)]; -// const activeParent = [findParentWithActiveLink(OmniItems, activePage)]; - const activeParent = getOmniSidebarActiveSection({OmniItems, activePage}); const OmniLinks = turnItemsIntoLinks(activeParent, activePage); From a1e9bfd5235bc4b82887021f5c51e74c7b8f81d6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 10:40:57 -0500 Subject: [PATCH 045/259] no errors with query coming from outside index.js --- .../omniSidebarNav/getOmniSidebarActiveSection.js | 10 +++++----- src/components/omniSidebarNav/index.js | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index bf97e2e03d..f74e87a7aa 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,13 +1,12 @@ import React from "react" -//import getOmniItems from "./getOmniItems"; +import getOmniItems from "./getOmniItems"; -const getOmniSidebarActiveSection = ({OmniItems, activePage}) => { - +const getOmniSidebarActiveSection = ({activePage}) => { function findParentWithActiveLink(NestedItems, activePage) { @@ -34,14 +33,15 @@ const getOmniSidebarActiveSection = ({OmniItems, activePage}) => { } - + const TheOmniItems = getOmniItems(); + console.log(TheOmniItems); console.log(activePage); // const OmniItems = getOmniItems(); - return [findParentWithActiveLink(OmniItems, activePage)]; + return [findParentWithActiveLink(TheOmniItems, activePage)]; } diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 8e14caa426..477fc87e34 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -17,8 +17,8 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { const OmniSidebarNav = ({activePage, maximumParent}) => { - const OmniItems = getOmniItems(); - + //const OmniItems = getOmniItems(); + const OmniItems = []; @@ -39,7 +39,7 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { // } - const activeParent = getOmniSidebarActiveSection({OmniItems, activePage}); + const activeParent = getOmniSidebarActiveSection({activePage}); const OmniLinks = turnItemsIntoLinks(activeParent, activePage); From 9d1300f0e3f8ff24e5320bddbc54b952b6ab2890 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 11:20:12 -0500 Subject: [PATCH 046/259] more tweaks --- .../omniSidebarNav/getOmniSidebarActiveSection.js | 14 +++++++------- src/components/omniSidebarNav/index.js | 7 ++----- src/templates/guide.js | 8 ++++++++ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index f74e87a7aa..029419ec53 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -33,15 +33,15 @@ const getOmniSidebarActiveSection = ({activePage}) => { } - const TheOmniItems = getOmniItems(); - console.log(TheOmniItems); - - + const OmniItems = getOmniItems(); + if (OmniItems) { + return [findParentWithActiveLink(OmniItems, activePage)]; + } + else { + return undefined; - console.log(activePage); - // const OmniItems = getOmniItems(); - return [findParentWithActiveLink(TheOmniItems, activePage)]; + } } diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 477fc87e34..68de282e10 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,6 +1,5 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import getOmniItems from "./getOmniItems"; import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; @@ -17,8 +16,6 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { const OmniSidebarNav = ({activePage, maximumParent}) => { - //const OmniItems = getOmniItems(); - const OmniItems = []; @@ -39,9 +36,9 @@ const OmniSidebarNav = ({activePage, maximumParent}) => { // } - const activeParent = getOmniSidebarActiveSection({activePage}); + const menuItems = getOmniSidebarActiveSection({activePage}); - const OmniLinks = turnItemsIntoLinks(activeParent, activePage); + const OmniLinks = turnItemsIntoLinks(menuItems, activePage); return ( { return { @@ -56,6 +59,7 @@ class GuideTemplate extends React.Component {
{children}
) const ContentLayoutType = hasTOC ? SidebarLayout : ContainerDiv + //const menuItems = getOmniSidebarActiveSection({ activePage: "guides/decoupled/wp-nextjs-frontend-starters/caching/" }); return ( @@ -71,6 +75,10 @@ class GuideTemplate extends React.Component { />
LOGIC NEEDED here for whether the the guide is in the omni + + + +
Date: Tue, 25 Jun 2024 11:32:35 -0500 Subject: [PATCH 047/259] adding OmniSidebarNavWithFallback.js --- .../OmniSidebarNavWithFallback.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/components/omniSidebarNav/OmniSidebarNavWithFallback.js diff --git a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js new file mode 100644 index 0000000000..778ee2adfe --- /dev/null +++ b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js @@ -0,0 +1,44 @@ +import React from "react" +import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" +import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; + + + + +const OmniSidebarNavWithFallback = ({activePage, fallbackItems}) => { + + + + const menuItems = getOmniSidebarActiveSection({activePage}); + + + +console.log("menuItems", menuItems); + + + if (menuItems[0]) { + const OmniLinks = turnItemsIntoLinks(menuItems, activePage); + console.log("OmniLinks", OmniLinks); + return ( + + ) + } + else { + + return ( +
+ this is the fallback div +
+ + ) + + } + +} + +export default OmniSidebarNavWithFallback; + From 90698c8a7e3c1eafba550048e5e7004bad081998 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 11:37:53 -0500 Subject: [PATCH 048/259] fallback is working in guide --- .../OmniSidebarNavWithFallback.js | 30 ++++++------------- src/templates/guide.js | 29 +++++------------- 2 files changed, 16 insertions(+), 43 deletions(-) diff --git a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js index 778ee2adfe..1c720113ec 100644 --- a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js +++ b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js @@ -1,44 +1,32 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; +import Navbar from "../navbar" - - - -const OmniSidebarNavWithFallback = ({activePage, fallbackItems}) => { - - +const OmniSidebarNavWithFallback = ({activePage, fallbackItems, fallbackTitle}) => { const menuItems = getOmniSidebarActiveSection({activePage}); - - -console.log("menuItems", menuItems); - - + // @todo, checking the 0 property is a hack, need to fix this. if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); console.log("OmniLinks", OmniLinks); return ( ) } else { - return ( -
- this is the fallback div -
- + ) - } - } export default OmniSidebarNavWithFallback; - diff --git a/src/templates/guide.js b/src/templates/guide.js index 2ae5dd9b5d..46d385e5cc 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -4,13 +4,13 @@ import GuideLayout from "../layout/GuideLayout" import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" -import Navbar from "../components/navbar" import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" import OmniSidebarNav from "../components/omniSidebarNav" import getOmniSidebarActiveSection from "../components/omniSidebarNav/getOmniSidebarActiveSection.js"; +import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; class GuideTemplate extends React.Component { @@ -73,28 +73,13 @@ class GuideTemplate extends React.Component { reviewed={isoDate.frontmatter.reviewed} type={node.frontmatter.type} /> -
-LOGIC NEEDED here for whether the the guide is in the omni - - - - -
- - - - - - + From 0f4046a27d2eafd539f08d924bd860658254b666 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 11:39:23 -0500 Subject: [PATCH 049/259] whitespace --- .../getOmniSidebarActiveSection.js | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 029419ec53..9aabf09f8e 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,14 +1,7 @@ -import React from "react" - import getOmniItems from "./getOmniItems"; - - - - const getOmniSidebarActiveSection = ({activePage}) => { - function findParentWithActiveLink(NestedItems, activePage) { // This function will return the top-level array of items that contains the active page // no matter how deeply nested it is. @@ -32,20 +25,13 @@ const getOmniSidebarActiveSection = ({activePage}) => { return false; } - const OmniItems = getOmniItems(); if (OmniItems) { - - return [findParentWithActiveLink(OmniItems, activePage)]; + return [findParentWithActiveLink(OmniItems, activePage)]; } else { return undefined; - } } - - - export default getOmniSidebarActiveSection; - From 3b67d44a05c85974dcd4455b76964280564de103 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 12:08:06 -0500 Subject: [PATCH 050/259] using fallback --- .../OmniSidebarNavWithFallback.js | 41 ++++++++++++++++--- src/components/omniSidebarNav/getOmniItems.js | 13 +++++- src/components/omniSidebarNav/index.js | 9 +--- src/templates/certificationpage.js | 8 +++- src/templates/guide.js | 2 - 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js index 1c720113ec..9bc69a4ddc 100644 --- a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js +++ b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js @@ -2,14 +2,42 @@ import React from "react" import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; import Navbar from "../navbar" +import getOmniItems from "./getOmniItems"; -const OmniSidebarNavWithFallback = ({activePage, fallbackItems, fallbackTitle}) => { - const menuItems = getOmniSidebarActiveSection({activePage}); +function findSubMenuItemsToUse(maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; + } + } + return undefined; +} + + +const OmniSidebarNavWithFallback = ({activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = ''}) => { + + const menuItems = getOmniSidebarActiveSection({ activePage }); + const OmniItems = getOmniItems(); - // @todo, checking the 0 property is a hack, need to fix this. - if (menuItems[0]) { + if (submenuPathToUse.length > 0) { + + const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; + const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); + + + return ( + + ) + + } + // @todo, checking the 0 property is a hack, need to fix this. + else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); + console.log("menuItems", menuItems); console.log("OmniLinks", OmniLinks); return ( ) } - else { + else if (fallbackItems && fallbackItems.length > 0) { return ( ) } + else { + return
; + } } export default OmniSidebarNavWithFallback; diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 4e4244d06e..b815f16403 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -6,7 +6,7 @@ const getOmniItems = () => { const OmniItems = [ { - link: "/get-started", + link: "/get-startedasdf", title: "Get Started", }, { @@ -24,7 +24,16 @@ const getOmniItems = () => { }, { link: "/get-started", - title: "about", + title: "Get Started", + children: [{ + link: "/get-startasdfasdfed", + title: "Get Started More", + }, + { + link: "/get-staasdfrted", + title: "Get Started Masdfasdfaore", + }, + ] }, ] ; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 68de282e10..1528e8528b 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -3,14 +3,7 @@ import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; -function findSubMenuItemsToUse(maximumParent, NestedItems) { - for (let item of NestedItems) { - if (item.link === maximumParent) { - return item; - } - } - return undefined; -} + diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 96dbadc6df..e0d1fa66db 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -7,6 +7,7 @@ import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" import OmniSidebarNav from "../components/omniSidebarNav" +import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" @@ -70,10 +71,13 @@ class CertificationTemplate extends React.Component { reviewed={ifCommandsISO} type={node.frontmatter.type} /> - + submenuPathToUse="/certification"/> + + + diff --git a/src/templates/guide.js b/src/templates/guide.js index 46d385e5cc..c814a7cf0d 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -8,8 +8,6 @@ import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" -import OmniSidebarNav from "../components/omniSidebarNav" -import getOmniSidebarActiveSection from "../components/omniSidebarNav/getOmniSidebarActiveSection.js"; import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; From 957c2d8aca469624900b505a25c05ebf95e3f62c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 12:15:02 -0500 Subject: [PATCH 051/259] more cleanup --- .../OmniSidebarNavWithFallback.js | 9 +--- src/components/omniSidebarNav/getOmniItems.js | 2 +- src/components/omniSidebarNav/index.js | 45 ------------------- src/components/sidebarNav/index.js | 2 - src/templates/certificationpage.js | 1 - 5 files changed, 3 insertions(+), 56 deletions(-) diff --git a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js index 9bc69a4ddc..970b1351bb 100644 --- a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js +++ b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js @@ -4,7 +4,6 @@ import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; import Navbar from "../navbar" import getOmniItems from "./getOmniItems"; - function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { @@ -20,28 +19,24 @@ const OmniSidebarNavWithFallback = ({activePage, fallbackItems = null, fallbackT const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); + // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); - - return ( ) - } - // @todo, checking the 0 property is a hack, need to fix this. + // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); console.log("menuItems", menuItems); console.log("OmniLinks", OmniLinks); return ( ) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index b815f16403..75227d89d6 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -31,7 +31,7 @@ const getOmniItems = () => { }, { link: "/get-staasdfrted", - title: "Get Started Masdfasdfaore", + title: "Get Started More", }, ] }, diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 1528e8528b..e69de29bb2 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,45 +0,0 @@ -import React from "react" -import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; - - - - - - -const OmniSidebarNav = ({activePage, maximumParent}) => { - - - - - // const activeParent = []; - // if (!maximumParent) { - // // merge all the top-level items into one array - // const sub = [findSubMenuItemsToUse(maximumParent, OmniItems)] - - // // merge sub into activeParent - // activeParent.push(sub); - - - // } else { - - - // const activer = [findParentWithActiveLink(OmniItems, activePage)]; - // const activeParent.push(activer); - // } - - - const menuItems = getOmniSidebarActiveSection({activePage}); - - const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - - return ( - - ) -} - -export default OmniSidebarNav; - diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js index ba364795b3..9525d659d1 100644 --- a/src/components/sidebarNav/index.js +++ b/src/components/sidebarNav/index.js @@ -29,7 +29,5 @@ const SidebarNav = ({ links, title }) => { ) } - - export default SidebarNav export { SidebarNav, turnItemsIntoLinks } diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index e0d1fa66db..bab4b9da03 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,7 +6,6 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" -import OmniSidebarNav from "../components/omniSidebarNav" import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; import NavButtons from "../components/navButtons" import TOC from "../components/toc" From 122b92cf938faf1fd82b3fc2ec6bf142fe9c2dc3 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 25 Jun 2024 12:49:38 -0500 Subject: [PATCH 052/259] getting rid of separate OmniSidebarNavWithFallback --- .../OmniSidebarNavWithFallback.js | 58 ------------------- src/components/omniSidebarNav/index.js | 58 +++++++++++++++++++ src/templates/certificationpage.js | 5 +- src/templates/guide.js | 4 +- 4 files changed, 63 insertions(+), 62 deletions(-) delete mode 100644 src/components/omniSidebarNav/OmniSidebarNavWithFallback.js diff --git a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js b/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js deleted file mode 100644 index 970b1351bb..0000000000 --- a/src/components/omniSidebarNav/OmniSidebarNavWithFallback.js +++ /dev/null @@ -1,58 +0,0 @@ -import React from "react" -import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; -import Navbar from "../navbar" -import getOmniItems from "./getOmniItems"; - -function findSubMenuItemsToUse(maximumParent, NestedItems) { - for (let item of NestedItems) { - if (item.link === maximumParent) { - return item; - } - } - return undefined; -} - - -const OmniSidebarNavWithFallback = ({activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = ''}) => { - - const menuItems = getOmniSidebarActiveSection({ activePage }); - const OmniItems = getOmniItems(); - - // If the caller is asking for a specific submenu, use that directly. - if (submenuPathToUse.length > 0) { - - const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; - const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); - return ( - - ) - } - // @todo, checking the 0 property is a hack, need to fix this. - else if (menuItems[0]) { - const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - console.log("menuItems", menuItems); - console.log("OmniLinks", OmniLinks); - return ( - - ) - } - else if (fallbackItems && fallbackItems.length > 0) { - return ( - - ) - } - else { - return
; - } -} - -export default OmniSidebarNavWithFallback; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index e69de29bb2..3e3e1690b6 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -0,0 +1,58 @@ +import React from "react" +import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" +import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; +import Navbar from "../navbar" +import getOmniItems from "./getOmniItems"; + +function findSubMenuItemsToUse(maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; + } + } + return undefined; +} + + +const OmniSidebarNav = ({ activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = '' }) => { + + const menuItems = getOmniSidebarActiveSection({ activePage }); + const OmniItems = getOmniItems(); + + // If the caller is asking for a specific submenu, use that directly. + if (submenuPathToUse.length > 0) { + + const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; + const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); + return ( + + ) + } + // @todo, checking the 0 property is a hack, need to fix this. + else if (menuItems[0]) { + const OmniLinks = turnItemsIntoLinks(menuItems, activePage); + console.log("menuItems", menuItems); + console.log("OmniLinks", OmniLinks); + return ( + + ) + } + else if (fallbackItems && fallbackItems.length > 0) { + return ( + + ) + } + else { + return
; + } +} + +export default OmniSidebarNav; diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index bab4b9da03..6ecc69df07 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,7 +6,8 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" -import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; + +import OmniSidebarNav from "../components/omniSidebarNav"; import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" @@ -70,7 +71,7 @@ class CertificationTemplate extends React.Component { reviewed={ifCommandsISO} type={node.frontmatter.type} /> - diff --git a/src/templates/guide.js b/src/templates/guide.js index c814a7cf0d..3115dd3a7c 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -8,7 +8,7 @@ import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" -import OmniSidebarNavWithFallback from "../components/omniSidebarNav/OmniSidebarNavWithFallback.js"; +import OmniSidebarNav from "../components/omniSidebarNav"; class GuideTemplate extends React.Component { @@ -72,7 +72,7 @@ class GuideTemplate extends React.Component { type={node.frontmatter.type} /> - Date: Wed, 26 Jun 2024 11:02:24 -0500 Subject: [PATCH 053/259] more cleanup --- src/components/omniSidebarNav/fun.js | 105 ------------------ .../omniSidebarNav/getGuideDirectory.js | 4 +- .../getOmniSidebarActiveSection.js | 35 +++--- 3 files changed, 19 insertions(+), 125 deletions(-) delete mode 100644 src/components/omniSidebarNav/fun.js diff --git a/src/components/omniSidebarNav/fun.js b/src/components/omniSidebarNav/fun.js deleted file mode 100644 index b095152cd2..0000000000 --- a/src/components/omniSidebarNav/fun.js +++ /dev/null @@ -1,105 +0,0 @@ - - - const CertificationItems = [ - { - link: "/certification/about", - title: "About the Certification Program", - }, - { - link: "/certification/exam", - title: "Taking the Exam", - }, - { - link: "/certification/study-guide", - title: "Study Guide", - children: [ - { - link: "/certification/study-guide", - title: "Introduction", - }, - { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", - }, - { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", - }, - { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", - }, - { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", - }, - { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", - }, - { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", - }, - { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", - }, - { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", - }, - { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", - }, - { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", - }, - ] - }, - { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", - }, - ] - - - - const OmniItems = [ - - { - link: "/get-started", - title: "Get Started", - }, - { - link: "/certification", - title: "WebOps Certification", - children: CertificationItems - } - ]; - - - - function findSubMenuItemsToUse(maximumParent, NestedItems) { - for (let item of NestedItems) { - if (item.link === maximumParent) { - return item; - } else if (item.subItems && item.subItems.length > 0) { - const found = findSubMenuItemsToUse(maximumParent, item.subItems); - if (found) return found; - } - } - return undefined; - } - - const activeParent = findSubMenuItemsToUse("/certification", OmniItems); - - - console.log(activeParent); - - - - - diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 8c8cf8b261..0a5e58f9a0 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -34,7 +34,7 @@ const getAllGuidePages = () => { return AllTheGuides; } -const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { + function getChildrenForGuideDirectory (AllTheGuides, guideDirectory) { const ChildItems = []; for (let item of AllTheGuides) { if (item.node.fields.guide_directory === guideDirectory) { @@ -47,7 +47,7 @@ const getChildrenForGuideDirectory = (AllTheGuides, guideDirectory) => { return ChildItems; } -const getTitleForGuideDirectory = (AllTheGuides, guideDirectory) => { +function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { for (let item of AllTheGuides) { if (item.node.fields.slug === "/" + guideDirectory) { return item.node.frontmatter.title; diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 9aabf09f8e..2f6de53004 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,30 +1,29 @@ import getOmniItems from "./getOmniItems"; -const getOmniSidebarActiveSection = ({activePage}) => { - - function findParentWithActiveLink(NestedItems, activePage) { - // This function will return the top-level array of items that contains the active page - // no matter how deeply nested it is. - for (let item of NestedItems) { - if (containsActiveLink(item, activePage)) { - return item; - } +function findParentWithActiveLink(NestedItems, activePage) { + // This function will return the top-level array of items that contains the active page + // no matter how deeply nested it is. + for (let item of NestedItems) { + if (containsActiveLink(item, activePage)) { + return item; } } +} - function containsActiveLink(item, activePage) { - if (item.link === activePage) { - return true; - } else if (item.children && item.children.length > 0) { - for (let child of item.children) { - if (containsActiveLink(child, activePage)) { - return true; - } +function containsActiveLink(item, activePage) { + if (item.link === activePage) { + return true; + } else if (item.children && item.children.length > 0) { + for (let child of item.children) { + if (containsActiveLink(child, activePage)) { + return true; } } - return false; } + return false; +} +const getOmniSidebarActiveSection = ({activePage}) => { const OmniItems = getOmniItems(); if (OmniItems) { return [findParentWithActiveLink(OmniItems, activePage)]; From 49b1c19be06e05f54b2dfabec8fb55d458586566 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:00:13 -0500 Subject: [PATCH 054/259] link fix --- src/components/omniSidebarNav/getOmniItems.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 75227d89d6..ea3fff5694 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -10,9 +10,10 @@ const getOmniItems = () => { title: "Get Started", }, { - link: "/decoupled", + link: "/guides/decoupled", title: "Front-End Sites", children: [ + getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), getGuideDirectory("guides/decoupled/wp-backend-starters"), ] From 550ef9bc2240c1f4ee7690e8b1a742072dea7604 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:21:20 -0500 Subject: [PATCH 055/259] screenshot testing nav --- tests/package.json | 4 +++- tests/playwright-tests/visuals.spec.ts | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/package.json b/tests/package.json index 99cf8e44e8..6b7c6c6aee 100644 --- a/tests/package.json +++ b/tests/package.json @@ -13,8 +13,10 @@ "scripts": { "end-to-end:update-live-snapshots": "npx playwright test --update-snapshots", "end-to-end:pull-request-preview": "PLAYWRIGHT_BASE_URL='https://pr-'${GITHUB_PR_NUMBER}'-documentation.appa.pantheon.site' npx playwright test", + "end-to-end:pull-request-preview-snapshots": "PLAYWRIGHT_BASE_URL='https://pr-'${GITHUB_PR_NUMBER}'-documentation.appa.pantheon.site' npx playwright test --update-snapshots", "end-to-end:local": "PLAYWRIGHT_BASE_URL='http://localhost:8000/' npx playwright test", "end-to-end:compare-pr-to-live": "npm run end-to-end:update-live-snapshots && npm run end-to-end:pull-request-preview", - "end-to-end:compare-local-to-live": "npm run end-to-end:update-live-snapshots && npm run end-to-end:local" + "end-to-end:compare-local-to-live": "npm run end-to-end:update-live-snapshots && npm run end-to-end:local", + "end-to-end:compare-local-to-pr": "npm run end-to-end:pull-request-preview-snapshots && npm run end-to-end:local" } } diff --git a/tests/playwright-tests/visuals.spec.ts b/tests/playwright-tests/visuals.spec.ts index dffaf5a2ad..9a52e1a75f 100644 --- a/tests/playwright-tests/visuals.spec.ts +++ b/tests/playwright-tests/visuals.spec.ts @@ -59,6 +59,29 @@ test('certification---study-guide', async ({ page }) => { await expect(page).toHaveScreenshot('certification---study-guide.png', { fullPage: true } ); }); +test('certification---study-guide--webops', async ({ page }) => { + await page.goto('/certification/study-guide/webops'); + await page.getByText('Accept Cookies').click(); + await expect(page.locator('#toc')).toBeVisible(); + await expect(page).toHaveScreenshot('certification---study-guide--webops.png', { fullPage: true }); +}); + +// This page is one of the first to use the nest sidebar nav. +test('wp-nextjs--create', async ({ page }) => { + await page.goto('/guides/decoupled/wp-nextjs-frontend-starters/create/'); + await page.getByText('Accept Cookies').click(); + await expect(page.locator('#toc')).toBeVisible(); + await expect(page).toHaveScreenshot('wp-nextjs--create.png', { fullPage: true }); +}); + +// As the nested nav is implemented, check that the non-nested nav is still working. +test('drush-guide', async ({ page }) => { + await page.goto('/guides/drush/drush-commands'); + await page.getByText('Accept Cookies').click(); + await expect(page.locator('#toc')).toBeVisible(); + await expect(page).toHaveScreenshot('drush-guide.png', { fullPage: true }); +}); + test('drupal-cron', async ({ page }) => { await page.goto('/drupal-cron'); await page.getByText('Accept Cookies').click(); From 2c8572dbb3be95990fe2bd7907e71b6be88f1b6d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:25:25 -0500 Subject: [PATCH 056/259] update prettier --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7062b2c32a..ee7771210d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21160,9 +21160,9 @@ } }, "node_modules/prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -41655,9 +41655,9 @@ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" }, "prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "pretty-bytes": { From e4f05fb74ddc22a01511fa04e5356fcd0814260c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:34:55 -0500 Subject: [PATCH 057/259] running prettier --- .../omniSidebarNav/getGuideDirectory.js | 60 ++++++++--------- src/components/omniSidebarNav/getOmniItems.js | 52 +++++++-------- .../getOmniSidebarActiveSection.js | 9 ++- src/components/omniSidebarNav/index.js | 45 +++++++------ .../omniSidebarNav/submenus/certification.js | 64 +++++++++---------- 5 files changed, 113 insertions(+), 117 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 0a5e58f9a0..cd6c32972d 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,40 +1,39 @@ -import { useStaticQuery, graphql } from "gatsby" +import { useStaticQuery, graphql } from 'gatsby'; const getAllGuidePages = () => { - const AllTheGuides = useStaticQuery( graphql` { allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory + filter: { + fileAbsolutePath: { ne: null } + fields: { guide_directory: { regex: "/^(?=guides/).*$/i" } } + frontmatter: { draft: { ne: true } } } - frontmatter { - title - subtitle + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } } } } - } - } - ` + `, ); return AllTheGuides; -} +}; - function getChildrenForGuideDirectory (AllTheGuides, guideDirectory) { +function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { const ChildItems = []; for (let item of AllTheGuides) { if (item.node.fields.guide_directory === guideDirectory) { @@ -47,9 +46,9 @@ const getAllGuidePages = () => { return ChildItems; } -function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { +function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { for (let item of AllTheGuides) { - if (item.node.fields.slug === "/" + guideDirectory) { + if (item.node.fields.slug === '/' + guideDirectory) { return item.node.frontmatter.title; } } @@ -58,10 +57,13 @@ function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { const getGuideDirectory = (guideDirectory) => { const AllGuides = getAllGuidePages(); return { - link: "/" + guideDirectory, + link: '/' + guideDirectory, title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), - children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, guideDirectory) - } -} + children: getChildrenForGuideDirectory( + AllGuides.allGuides.edges, + guideDirectory, + ), + }; +}; export default getGuideDirectory; diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index ea3fff5694..5ea4595e2c 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,45 +1,41 @@ -import CertificationItems from "./submenus/certification"; -import getGuideDirectory from "./getGuideDirectory"; +import CertificationItems from './submenus/certification'; +import getGuideDirectory from './getGuideDirectory'; const getOmniItems = () => { - const OmniItems = [ - { - link: "/get-startedasdf", - title: "Get Started", + link: '/get-startedasdf', + title: 'Get Started', }, { - link: "/guides/decoupled", - title: "Front-End Sites", + link: '/guides/decoupled', + title: 'Front-End Sites', children: [ - - getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), - getGuideDirectory("guides/decoupled/wp-backend-starters"), - ] + getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), + getGuideDirectory('guides/decoupled/wp-backend-starters'), + ], }, { - link: "/certification", - title: "WebOps Certification", - children: CertificationItems + link: '/certification', + title: 'WebOps Certification', + children: CertificationItems, }, + { + link: '/get-started', + title: 'Get Started', + children: [ { - link: "/get-started", - title: "Get Started", - children: [{ - link: "/get-startasdfasdfed", - title: "Get Started More", - }, + link: '/get-startasdfasdfed', + title: 'Get Started More', + }, { - link: "/get-staasdfrted", - title: "Get Started More", + link: '/get-staasdfrted', + title: 'Get Started More', }, - ] + ], }, - ] - ; - + ]; return OmniItems; -} +}; export default getOmniItems; diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 2f6de53004..760ae89dd2 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,4 +1,4 @@ -import getOmniItems from "./getOmniItems"; +import getOmniItems from './getOmniItems'; function findParentWithActiveLink(NestedItems, activePage) { // This function will return the top-level array of items that contains the active page @@ -23,14 +23,13 @@ function containsActiveLink(item, activePage) { return false; } -const getOmniSidebarActiveSection = ({activePage}) => { +const getOmniSidebarActiveSection = ({ activePage }) => { const OmniItems = getOmniItems(); if (OmniItems) { return [findParentWithActiveLink(OmniItems, activePage)]; - } - else { + } else { return undefined; } -} +}; export default getOmniSidebarActiveSection; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 3e3e1690b6..14fc2fe21e 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,8 +1,8 @@ -import React from "react" -import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; -import Navbar from "../navbar" -import getOmniItems from "./getOmniItems"; +import React from 'react'; +import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; +import getOmniSidebarActiveSection from './getOmniSidebarActiveSection.js'; +import Navbar from '../navbar'; +import getOmniItems from './getOmniItems'; function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { @@ -13,46 +13,45 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { return undefined; } - -const OmniSidebarNav = ({ activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = '' }) => { - +const OmniSidebarNav = ({ + activePage, + fallbackItems = null, + fallbackTitle = '', + submenuPathToUse = '', +}) => { const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { - const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); return ( - ) + links={submenuLinks[0].links} + /> + ); } // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - console.log("menuItems", menuItems); - console.log("OmniLinks", OmniLinks); + console.log('menuItems', menuItems); + console.log('OmniLinks', OmniLinks); return ( - - ) - } - else if (fallbackItems && fallbackItems.length > 0) { + + ); + } else if (fallbackItems && fallbackItems.length > 0) { return ( - ) - } - else { + ); + } else { return
; } -} +}; export default OmniSidebarNav; diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js index beb91dfe57..e19b26293d 100644 --- a/src/components/omniSidebarNav/submenus/certification.js +++ b/src/components/omniSidebarNav/submenus/certification.js @@ -1,66 +1,66 @@ const CertificationItems = [ { - link: "/certification/about", - title: "About the Certification Program", + link: '/certification/about', + title: 'About the Certification Program', }, { - link: "/certification/exam", - title: "Taking the Exam", + link: '/certification/exam', + title: 'Taking the Exam', }, { - link: "/certification/study-guide", - title: "Study Guide", + link: '/certification/study-guide', + title: 'Study Guide', children: [ { - link: "/certification/study-guide", - title: "Introduction", + link: '/certification/study-guide', + title: 'Introduction', }, { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", + link: '/certification/study-guide/webops', + title: 'Chapter 1: WebOps', }, { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", + link: '/certification/study-guide/platform', + title: 'Chapter 2: Pantheon Platform', }, { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", + link: '/certification/study-guide/create', + title: 'Chapter 3: Site Creation', }, { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", + link: '/certification/study-guide/cdn', + title: 'Chapter 4: Content Delivery Network', }, { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", + link: '/certification/study-guide/cms', + title: 'Chapter 5: CMS Infrastructure', }, { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", + link: '/certification/study-guide/deploy', + title: 'Chapter 6: The Deployment Pipeline', }, { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", + link: '/certification/study-guide/people', + title: 'Chapter 7: Connecting People', }, { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", + link: '/certification/study-guide/extend', + title: 'Chapter 8: Extend with CLI and Hooks', }, { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", + link: '/certification/study-guide/automate', + title: 'Chapter 9: Additional Automation', }, { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", + link: '/certification/study-guide/custom-upstreams', + title: 'Chapter 10: Custom Upstreams', }, - ] + ], }, { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", + link: 'https://certification.pantheon.io/', + title: '↗ Certification Directory', }, -] +]; export default CertificationItems; From a914402a5212d5dce54b33a7e6ede5043ce7cf84 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:35:29 -0500 Subject: [PATCH 058/259] switching prettier standard based on internal discussion --- .prettierrc | 7 ------- prettier.config.js | 4 ++++ 2 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 .prettierrc create mode 100644 prettier.config.js diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 48e90e8d40..0000000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "endOfLine": "lf", - "semi": false, - "singleQuote": false, - "tabWidth": 2, - "trailingComma": "es5" -} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000000..de2f53cdf9 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,4 @@ +module.exports = { + singleQuote: true, + trailingComma: 'all', +}; From 7705f80e27f810bc8af5301815ff2d94c3de5421 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:42:36 -0500 Subject: [PATCH 059/259] adding eslint --- package-lock.json | 3410 ++++++++++++++++++++++++++++++++------------- package.json | 4 + 2 files changed, 2431 insertions(+), 983 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee7771210d..c3372995c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,8 +65,12 @@ "tocbot": "^4.20.0" }, "devDependencies": { + "@eslint/js": "^9.6.0", "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "globals": "^15.7.0", "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" @@ -1286,6 +1290,14 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", @@ -2232,6 +2244,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", @@ -2258,29 +2278,70 @@ "partytown": "bin/partytown.cjs" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -2291,12 +2352,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", + "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", + "dev": true, "engines": { - "node": ">= 4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@floating-ui/core": { @@ -2771,22 +2844,36 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -5647,67 +5734,6 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", @@ -5731,32 +5757,6 @@ "eslint": "*" } }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/scope-manager": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", @@ -5857,6 +5857,11 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "node_modules/@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz", @@ -6029,9 +6034,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "bin": { "acorn": "bin/acorn" }, @@ -6345,12 +6350,15 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6362,14 +6370,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -6396,6 +6405,25 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -6414,13 +6442,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -6430,16 +6458,51 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/arrify": { @@ -6576,9 +6639,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -7524,12 +7590,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8863,6 +8935,54 @@ "node": ">=10" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dataloader": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", @@ -9004,6 +9124,22 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -9013,10 +9149,11 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -9480,11 +9617,12 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" @@ -9542,44 +9680,56 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -9588,6 +9738,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -9607,30 +9776,65 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -9813,93 +10017,59 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", @@ -9942,21 +10112,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, "node_modules/eslint-plugin-import": { "version": "2.27.5", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", @@ -10055,25 +10210,28 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "version": "7.34.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", + "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" }, "engines": { "node": ">=4" @@ -10113,11 +10271,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10129,9 +10287,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -10232,12 +10390,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -10254,6 +10412,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10309,26 +10472,64 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/eslint/node_modules/globals": { @@ -10353,45 +10554,65 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/lru-cache": { + "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dependencies": { - "yallist": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "p-limit": "^3.0.2" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" } }, "node_modules/eslint/node_modules/shebang-command": { @@ -10438,41 +10659,31 @@ "node": ">= 8" } }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -11406,19 +11617,22 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -13877,6 +14091,185 @@ "node": ">=14.15.0" } }, + "node_modules/gatsby/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gatsby/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/gatsby/node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead" + }, + "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/gatsby/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -13951,6 +14344,195 @@ "node": ">=10" } }, + "node_modules/gatsby/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gatsby/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/gatsby/node_modules/eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "dependencies": { + "confusing-browser-globals": "^1.0.10" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0", + "@typescript-eslint/parser": "^4.0.0", + "babel-eslint": "^10.0.0", + "eslint": "^7.5.0", + "eslint-plugin-flowtype": "^5.2.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-jest": "^24.0.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.20.3", + "eslint-plugin-react-hooks": "^4.0.8", + "eslint-plugin-testing-library": "^3.9.0" + }, + "peerDependenciesMeta": { + "eslint-plugin-jest": { + "optional": true + }, + "eslint-plugin-testing-library": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/eslint-plugin-flowtype": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", + "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", + "dependencies": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.1.0" + } + }, + "node_modules/gatsby/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/gatsby/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/gatsby/node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/gatsby/node_modules/eslint/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gatsby/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/gatsby/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/gatsby/node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -13984,6 +14566,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gatsby/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gatsby/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14133,14 +14729,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14174,12 +14774,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -14291,11 +14892,15 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.7.0.tgz", + "integrity": "sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -14376,6 +14981,11 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, "node_modules/graphql": { "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", @@ -14489,20 +15099,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -14522,11 +15132,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -14593,6 +15203,17 @@ "node": "*" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -15165,12 +15786,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -15259,13 +15880,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15276,6 +15899,20 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -15358,11 +15995,28 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dependencies": { - "has": "^1.0.3" + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15421,6 +16075,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -15437,6 +16102,20 @@ "node": ">=6" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -15519,9 +16198,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -15659,11 +16338,14 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15714,15 +16396,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -15977,6 +16655,18 @@ "url": "https://bevry.me/fund" } }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -19726,9 +20416,12 @@ "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -19757,12 +20450,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -19774,26 +20467,27 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -19803,25 +20497,29 @@ } }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -19906,16 +20604,16 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -20578,6 +21276,14 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -22103,6 +22809,26 @@ "redux": "^4" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -22133,13 +22859,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -22897,6 +23624,23 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -22917,14 +23661,17 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -23181,6 +23928,36 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -23454,13 +24231,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -23945,31 +24726,39 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -23979,26 +24768,29 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -24235,9 +25027,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -24250,14 +25042,14 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -24764,14 +25556,70 @@ "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==" }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -25432,9 +26280,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" }, "node_modules/v8-to-istanbul": { "version": "8.1.1", @@ -25759,6 +26607,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -25779,16 +26652,15 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -25829,9 +26701,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "engines": { "node": ">=0.10.0" } @@ -27002,6 +27874,13 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } } }, "@babel/plugin-transform-computed-properties": { @@ -27626,6 +28505,13 @@ "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } } }, "@babel/types": { @@ -27648,37 +28534,71 @@ "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz", "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==" }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "requires": { + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" + } + } + }, + "@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==" + }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "requires": { "type-fest": "^0.20.2" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } } } }, + "@eslint/js": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", + "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", + "dev": true + }, "@floating-ui/core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", @@ -28082,19 +29002,24 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -30239,44 +31164,6 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, "@typescript-eslint/experimental-utils": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", @@ -30290,17 +31177,6 @@ "eslint-utils": "^3.0.0" } }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - } - }, "@typescript-eslint/scope-manager": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", @@ -30361,6 +31237,11 @@ "eslint-visitor-keys": "^2.0.0" } }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz", @@ -30530,9 +31411,9 @@ } }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==" }, "acorn-globals": { "version": "6.0.0", @@ -30760,12 +31641,12 @@ } }, "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" } }, "array-flatten": { @@ -30774,14 +31655,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" } }, @@ -30795,6 +31677,19 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, + "array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -30807,26 +31702,52 @@ } }, "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" } }, "arrify": { @@ -30927,9 +31848,12 @@ } }, "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "requires": { + "possible-typed-array-names": "^1.0.0" + } }, "axe-core": { "version": "4.7.2", @@ -31636,12 +32560,15 @@ } }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "callsites": { @@ -32668,6 +33595,36 @@ } } }, + "data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, "dataloader": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", @@ -32766,16 +33723,27 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -33133,11 +34101,12 @@ } }, "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "requires": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" } }, "entities": { @@ -33177,46 +34146,71 @@ } }, "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "requires": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.15" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" } }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -33233,27 +34227,56 @@ "stop-iteration-iterator": "^1.0.0" } }, + "es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + } + }, "es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" }, + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "requires": { + "es-errors": "^1.3.0" + } + }, "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" } }, "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "es-to-primitive": { @@ -33392,59 +34415,54 @@ } }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "requires": { - "@babel/highlight": "^7.10.4" - } + "@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==" }, "ansi-styles": { "version": "4.3.0", @@ -33454,6 +34472,11 @@ "color-convert": "^2.0.1" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -33491,19 +34514,40 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" } }, "globals": { @@ -33519,17 +34563,36 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } }, - "lru-cache": { + "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "requires": { - "yallist": "^4.0.0" + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" } }, "path-key": { @@ -33537,14 +34600,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -33573,22 +34628,9 @@ "requires": { "isexe": "^2.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, - "eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", - "requires": { - "confusing-browser-globals": "^1.0.10" - } - }, "eslint-import-resolver-node": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", @@ -33627,15 +34669,6 @@ } } }, - "eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "requires": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - } - }, "eslint-plugin-import": { "version": "2.27.5", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", @@ -33717,25 +34750,28 @@ } }, "eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "version": "7.34.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", + "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "requires": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" }, "dependencies": { "doctrine": { @@ -33752,19 +34788,19 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -33835,24 +34871,19 @@ } }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" } } }, @@ -34554,19 +35585,19 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, "functional-red-black-tree": { @@ -34752,6 +35783,113 @@ "yaml-loader": "^0.8.0" }, "dependencies": { + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + } + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + } + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -34805,6 +35943,130 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } + } + }, + "eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "requires": { + "confusing-browser-globals": "^1.0.10" + } + }, + "eslint-plugin-flowtype": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", + "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", + "requires": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -34826,6 +36088,14 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "requires": { + "type-fest": "^0.20.2" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -36639,14 +37909,15 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-package-type": { @@ -36668,12 +37939,13 @@ } }, "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" } }, "git-up": { @@ -36760,9 +38032,10 @@ } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.7.0.tgz", + "integrity": "sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==", + "dev": true }, "globalthis": { "version": "1.0.3", @@ -36821,6 +38094,11 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, "graphql": { "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", @@ -36902,17 +38180,17 @@ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "requires": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" } }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" }, "has-symbols": { "version": "1.0.3", @@ -36920,11 +38198,11 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "has-yarn": { @@ -36966,6 +38244,14 @@ "traverse": ">=0.2.4" } }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -37372,12 +38658,12 @@ } }, "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" } }, @@ -37437,13 +38723,12 @@ } }, "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" } }, "is-arrayish": { @@ -37451,6 +38736,14 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, + "is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -37495,11 +38788,19 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "requires": { - "has": "^1.0.3" + "is-typed-array": "^1.1.13" } }, "is-date-object": { @@ -37530,6 +38831,14 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, + "is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "requires": { + "call-bind": "^1.0.2" + } + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -37540,6 +38849,14 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -37599,9 +38916,9 @@ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" }, "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==" }, "is-npm": { "version": "5.0.0", @@ -37688,11 +39005,11 @@ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" }, "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" } }, "is-ssh": { @@ -37725,15 +39042,11 @@ } }, "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.14" } }, "is-typedarray": { @@ -37923,6 +39236,18 @@ "textextensions": "^2.5.0" } }, + "iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "requires": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, "javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -40671,9 +41996,9 @@ "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, "object-is": { "version": "1.1.5", @@ -40690,53 +42015,55 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" } }, "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" } }, "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "objectFitPolyfill": { @@ -40794,16 +42121,16 @@ "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" } }, "ordered-binary": { @@ -41299,6 +42626,11 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" + }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -42328,6 +43660,20 @@ "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "requires": {} }, + "reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + } + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -42355,13 +43701,14 @@ } }, "regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" } }, "regexpp": { @@ -42973,18 +44320,29 @@ } } }, + "safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" } }, @@ -43195,6 +44553,30 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -43411,13 +44793,14 @@ } }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" } }, "signal-exit": { @@ -43794,48 +45177,53 @@ } }, "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" } }, "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "stringify-entities": { @@ -44000,9 +45388,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -44012,14 +45400,14 @@ }, "dependencies": { "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" } }, "json-schema-traverse": { @@ -44388,14 +45776,52 @@ "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==" }, + "typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" } }, "typedarray": { @@ -44867,9 +46293,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" }, "v8-to-istanbul": { "version": "8.1.1", @@ -45127,6 +46553,25 @@ "is-symbol": "^1.0.3" } }, + "which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "requires": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, "which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -45144,16 +46589,15 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.2" } }, "widest-line": { @@ -45179,9 +46623,9 @@ } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==" }, "wrap-ansi": { "version": "6.2.0", diff --git a/package.json b/package.json index ae9c5c4106..3516dfad1a 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,12 @@ "tocbot": "^4.20.0" }, "devDependencies": { + "@eslint/js": "^9.6.0", "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "globals": "^15.7.0", "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" From f84fc280d4020aad78191f5f96ad5a4fb889d23e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:43:30 -0500 Subject: [PATCH 060/259] adding eslint --- eslint.config.mjs | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 eslint.config.mjs diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..b7528775e5 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,12 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import pluginReactConfig from "eslint-plugin-react/configs/recommended.js"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,jsx}"]}, + { languageOptions: { parserOptions: { ecmaFeatures: { jsx: true } } } }, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + pluginReactConfig, +]; \ No newline at end of file From c3d5fc8e370b71cdaeff8d4d6803988f887f7dd4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:50:46 -0500 Subject: [PATCH 061/259] Revert "adding eslint" This reverts commit f84fc280d4020aad78191f5f96ad5a4fb889d23e. --- eslint.config.mjs | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 eslint.config.mjs diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index b7528775e5..0000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,12 +0,0 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import pluginReactConfig from "eslint-plugin-react/configs/recommended.js"; - - -export default [ - {files: ["**/*.{js,mjs,cjs,jsx}"]}, - { languageOptions: { parserOptions: { ecmaFeatures: { jsx: true } } } }, - {languageOptions: { globals: globals.browser }}, - pluginJs.configs.recommended, - pluginReactConfig, -]; \ No newline at end of file From 3e839b59db292c2dd7b809cb8eb766301d8e1ad7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:51:02 -0500 Subject: [PATCH 062/259] Revert "adding eslint" This reverts commit 7705f80e27f810bc8af5301815ff2d94c3de5421. --- package-lock.json | 3410 +++++++++++++-------------------------------- package.json | 4 - 2 files changed, 983 insertions(+), 2431 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3372995c5..ee7771210d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,12 +65,8 @@ "tocbot": "^4.20.0" }, "devDependencies": { - "@eslint/js": "^9.6.0", "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", - "eslint": "^8.57.0", - "eslint-plugin-react": "^7.34.3", - "globals": "^15.7.0", "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" @@ -1290,14 +1286,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", @@ -2244,14 +2232,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", @@ -2278,70 +2258,29 @@ "partytown": "bin/partytown.cjs" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -2352,24 +2291,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/js": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", - "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", - "dev": true, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">= 4" } }, "node_modules/@floating-ui/core": { @@ -2844,36 +2771,22 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -5734,6 +5647,67 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/@typescript-eslint/experimental-utils": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", @@ -5757,6 +5731,32 @@ "eslint": "*" } }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", @@ -5857,11 +5857,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, "node_modules/@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz", @@ -6034,9 +6029,9 @@ } }, "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "bin": { "acorn": "bin/acorn" }, @@ -6350,15 +6345,12 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6370,15 +6362,14 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -6405,25 +6396,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -6442,13 +6414,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -6458,51 +6430,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" } }, "node_modules/arrify": { @@ -6639,12 +6576,9 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "engines": { "node": ">= 0.4" }, @@ -7590,18 +7524,12 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8935,54 +8863,6 @@ "node": ">=10" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dataloader": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", @@ -9124,22 +9004,6 @@ "node": ">=10" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -9149,11 +9013,10 @@ } }, "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dependencies": { - "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -9617,12 +9480,11 @@ } }, "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "ansi-colors": "^4.1.1" }, "engines": { "node": ">=8.6" @@ -9680,56 +9542,44 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -9738,25 +9588,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -9776,65 +9607,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dependencies": { - "hasown": "^2.0.0" + "has": "^1.0.3" } }, "node_modules/es-to-primitive": { @@ -10017,59 +9813,93 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "dependencies": { + "confusing-browser-globals": "^1.0.10" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0", + "@typescript-eslint/parser": "^4.0.0", + "babel-eslint": "^10.0.0", + "eslint": "^7.5.0", + "eslint-plugin-flowtype": "^5.2.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-jest": "^24.0.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.20.3", + "eslint-plugin-react-hooks": "^4.0.8", + "eslint-plugin-testing-library": "^3.9.0" + }, + "peerDependenciesMeta": { + "eslint-plugin-jest": { + "optional": true + }, + "eslint-plugin-testing-library": { + "optional": true + } + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", @@ -10112,6 +9942,21 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-flowtype": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", + "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", + "dependencies": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.1.0" + } + }, "node_modules/eslint-plugin-import": { "version": "2.27.5", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", @@ -10210,28 +10055,25 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", - "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.4", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" @@ -10271,11 +10113,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10287,9 +10129,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "bin": { "semver": "bin/semver.js" } @@ -10390,12 +10232,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -10412,11 +10254,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10472,64 +10309,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "engines": { - "node": ">=10.13.0" + "node": ">=4" } }, "node_modules/eslint/node_modules/globals": { @@ -10554,65 +10353,45 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" } }, - "node_modules/eslint/node_modules/locate-path": { + "node_modules/eslint/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "p-locate": "^5.0.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/eslint/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dependencies": { - "p-limit": "^3.0.2" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/eslint/node_modules/shebang-command": { @@ -10659,31 +10438,41 @@ "node": ">= 8" } }, + "node_modules/eslint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=0.4.0" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=4" } }, "node_modules/esprima": { @@ -11617,22 +11406,19 @@ } }, "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -14091,185 +13877,6 @@ "node": ">=14.15.0" } }, - "node_modules/gatsby/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/gatsby/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "deprecated": "Use @eslint/config-array instead", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/gatsby/node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "deprecated": "Use @eslint/object-schema instead" - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/parser/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/gatsby/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -14344,195 +13951,6 @@ "node": ">=10" } }, - "node_modules/gatsby/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gatsby/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/gatsby/node_modules/eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, - "node_modules/gatsby/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/gatsby/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/gatsby/node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/gatsby/node_modules/eslint/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/gatsby/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/gatsby/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/gatsby/node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -14566,20 +13984,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gatsby/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gatsby/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14729,18 +14133,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", + "function-bind": "^1.1.1", + "has": "^1.0.3", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14774,13 +14174,12 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -14892,15 +14291,11 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/globals": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.7.0.tgz", - "integrity": "sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==", - "dev": true, + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/globalthis": { @@ -14981,11 +14376,6 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, "node_modules/graphql": { "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", @@ -15099,20 +14489,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dependencies": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "engines": { "node": ">= 0.4" }, @@ -15132,11 +14522,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dependencies": { - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15203,17 +14593,6 @@ "node": "*" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -15786,12 +15165,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", "side-channel": "^1.0.4" }, "engines": { @@ -15880,15 +15259,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15899,20 +15276,6 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -15995,28 +15358,11 @@ } }, "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16075,17 +15421,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -16102,20 +15437,6 @@ "node": ">=6" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -16198,9 +15519,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "engines": { "node": ">= 0.4" }, @@ -16338,14 +15659,11 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16396,11 +15714,15 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dependencies": { - "which-typed-array": "^1.1.14" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16655,18 +15977,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -20416,12 +19726,9 @@ "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "engines": { - "node": ">= 0.4" - }, + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20450,12 +19757,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -20467,27 +19774,26 @@ } }, "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -20497,29 +19803,25 @@ } }, "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -20604,16 +19906,16 @@ } }, "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" @@ -21276,14 +20578,6 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -22809,26 +22103,6 @@ "redux": "^4" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -22859,14 +22133,13 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -23624,23 +22897,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -23661,17 +22917,14 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", "is-regex": "^1.1.4" }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -23928,36 +23181,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -24231,17 +23454,13 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -24726,39 +23945,31 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -24768,29 +23979,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -25027,9 +24235,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -25042,14 +24250,14 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "fast-deep-equal": "^3.1.3", + "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -25556,70 +24764,14 @@ "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==" }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.2", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "is-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -26280,9 +25432,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "node_modules/v8-to-istanbul": { "version": "8.1.1", @@ -26607,31 +25759,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -26652,15 +25779,16 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -26701,9 +25829,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "engines": { "node": ">=0.10.0" } @@ -27874,13 +27002,6 @@ "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } } }, "@babel/plugin-transform-computed-properties": { @@ -28505,13 +27626,6 @@ "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } } }, "@babel/types": { @@ -28534,71 +27648,37 @@ "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz", "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==" }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" - } - } - }, - "@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==" - }, "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "requires": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "requires": { "type-fest": "^0.20.2" } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" } } }, - "@eslint/js": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", - "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", - "dev": true - }, "@floating-ui/core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", @@ -29002,24 +28082,19 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" - }, "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -31164,6 +30239,44 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "@typescript-eslint/experimental-utils": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", @@ -31177,6 +30290,17 @@ "eslint-utils": "^3.0.0" } }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, "@typescript-eslint/scope-manager": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", @@ -31237,11 +30361,6 @@ "eslint-visitor-keys": "^2.0.0" } }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, "@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz", @@ -31411,9 +30530,9 @@ } }, "acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==" + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" }, "acorn-globals": { "version": "6.0.0", @@ -31641,12 +30760,12 @@ } }, "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" } }, "array-flatten": { @@ -31655,15 +30774,14 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -31677,19 +30795,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - } - }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -31702,52 +30807,26 @@ } }, "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, "array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" } }, "arrify": { @@ -31848,12 +30927,9 @@ } }, "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" - } + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "axe-core": { "version": "4.7.2", @@ -32560,15 +31636,12 @@ } }, "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, "callsites": { @@ -33595,36 +32668,6 @@ } } }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, "dataloader": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", @@ -33723,27 +32766,16 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "requires": { - "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -34101,12 +33133,11 @@ } }, "enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "requires": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "ansi-colors": "^4.1.1" } }, "entities": { @@ -34146,71 +33177,46 @@ } }, "es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" + "which-typed-array": "^1.1.9" } }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, "es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -34227,56 +33233,27 @@ "stop-iteration-iterator": "^1.0.0" } }, - "es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" - } - }, "es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" }, - "es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "requires": { - "es-errors": "^1.3.0" - } - }, "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, "es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "requires": { - "hasown": "^2.0.0" + "has": "^1.0.3" } }, "es-to-primitive": { @@ -34415,54 +33392,59 @@ } }, "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==" + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } }, "ansi-styles": { "version": "4.3.0", @@ -34472,11 +33454,6 @@ "color-convert": "^2.0.1" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -34514,40 +33491,19 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "requires": { - "is-glob": "^4.0.3" + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } } }, "globals": { @@ -34563,36 +33519,17 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, - "locate-path": { + "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "p-limit": "^3.0.2" + "yallist": "^4.0.0" } }, "path-key": { @@ -34600,6 +33537,14 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "requires": { + "lru-cache": "^6.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -34628,9 +33573,22 @@ "requires": { "isexe": "^2.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, + "eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "requires": { + "confusing-browser-globals": "^1.0.10" + } + }, "eslint-import-resolver-node": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", @@ -34669,6 +33627,15 @@ } } }, + "eslint-plugin-flowtype": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", + "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", + "requires": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + } + }, "eslint-plugin-import": { "version": "2.27.5", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", @@ -34750,28 +33717,25 @@ } }, "eslint-plugin-react": { - "version": "7.34.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", - "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", - "requires": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.4", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" }, "dependencies": { "doctrine": { @@ -34788,19 +33752,19 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, "resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -34871,19 +33835,24 @@ } }, "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" } } }, @@ -35585,19 +34554,19 @@ "optional": true }, "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" } }, "functional-red-black-tree": { @@ -35783,113 +34752,6 @@ "yaml-loader": "^0.8.0" }, "dependencies": { - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -35943,130 +34805,6 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } - } - }, - "eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", - "requires": { - "confusing-browser-globals": "^1.0.10" - } - }, - "eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "requires": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } - } - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -36088,14 +34826,6 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "requires": { - "type-fest": "^0.20.2" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -37909,15 +36639,14 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", + "function-bind": "^1.1.1", + "has": "^1.0.3", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -37939,13 +36668,12 @@ } }, "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" } }, "git-up": { @@ -38032,10 +36760,9 @@ } }, "globals": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.7.0.tgz", - "integrity": "sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==", - "dev": true + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globalthis": { "version": "1.0.3", @@ -38094,11 +36821,6 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, "graphql": { "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", @@ -38180,17 +36902,17 @@ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "requires": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.1.1" } }, "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, "has-symbols": { "version": "1.0.3", @@ -38198,11 +36920,11 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "requires": { - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.2" } }, "has-yarn": { @@ -38244,14 +36966,6 @@ "traverse": ">=0.2.4" } }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, "hast-to-hyperscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", @@ -38658,12 +37372,12 @@ } }, "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", "side-channel": "^1.0.4" } }, @@ -38723,12 +37437,13 @@ } }, "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, "is-arrayish": { @@ -38736,14 +37451,6 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -38788,19 +37495,11 @@ } }, "is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", - "requires": { - "hasown": "^2.0.2" - } - }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "requires": { - "is-typed-array": "^1.1.13" + "has": "^1.0.3" } }, "is-date-object": { @@ -38831,14 +37530,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, - "is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "requires": { - "call-bind": "^1.0.2" - } - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -38849,14 +37540,6 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -38916,9 +37599,9 @@ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" }, "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" }, "is-npm": { "version": "5.0.0", @@ -39005,11 +37688,11 @@ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" }, "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "requires": { - "call-bind": "^1.0.7" + "call-bind": "^1.0.2" } }, "is-ssh": { @@ -39042,11 +37725,15 @@ } }, "is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "requires": { - "which-typed-array": "^1.1.14" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" } }, "is-typedarray": { @@ -39236,18 +37923,6 @@ "textextensions": "^2.5.0" } }, - "iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "requires": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, "javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -41996,9 +40671,9 @@ "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" }, "object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "object-is": { "version": "1.1.5", @@ -42015,55 +40690,53 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "requires": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "objectFitPolyfill": { @@ -42121,16 +40794,16 @@ "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" }, "optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "word-wrap": "^1.2.3" } }, "ordered-binary": { @@ -42626,11 +41299,6 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -43660,20 +42328,6 @@ "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "requires": {} }, - "reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -43701,14 +42355,13 @@ } }, "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, "regexpp": { @@ -44320,29 +42973,18 @@ } } }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", "is-regex": "^1.1.4" } }, @@ -44553,30 +43195,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -44793,14 +43411,13 @@ } }, "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, "signal-exit": { @@ -45177,53 +43794,48 @@ } }, "string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" } }, "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "stringify-entities": { @@ -45388,9 +44000,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -45400,14 +44012,14 @@ }, "dependencies": { "ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "requires": { - "fast-deep-equal": "^3.1.3", + "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "uri-js": "^4.2.2" } }, "json-schema-traverse": { @@ -45776,52 +44388,14 @@ "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==" }, - "typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, "typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "requires": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.2", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "is-typed-array": "^1.1.9" } }, "typedarray": { @@ -46293,9 +44867,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "v8-to-istanbul": { "version": "8.1.1", @@ -46553,25 +45127,6 @@ "is-symbol": "^1.0.3" } }, - "which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "requires": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - } - }, "which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -46589,15 +45144,16 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" } }, "widest-line": { @@ -46623,9 +45179,9 @@ } }, "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wrap-ansi": { "version": "6.2.0", diff --git a/package.json b/package.json index 3516dfad1a..ae9c5c4106 100644 --- a/package.json +++ b/package.json @@ -64,12 +64,8 @@ "tocbot": "^4.20.0" }, "devDependencies": { - "@eslint/js": "^9.6.0", "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", - "eslint": "^8.57.0", - "eslint-plugin-react": "^7.34.3", - "globals": "^15.7.0", "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" From 54aabfb6cec149c8de0d07db036b5abd7c79cfcc Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 17:56:33 -0500 Subject: [PATCH 063/259] Revert "running prettier" This reverts commit e4f05fb74ddc22a01511fa04e5356fcd0814260c. --- .../omniSidebarNav/getGuideDirectory.js | 60 +++++++++-------- src/components/omniSidebarNav/getOmniItems.js | 52 ++++++++------- .../getOmniSidebarActiveSection.js | 9 +-- src/components/omniSidebarNav/index.js | 45 ++++++------- .../omniSidebarNav/submenus/certification.js | 64 +++++++++---------- 5 files changed, 117 insertions(+), 113 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index cd6c32972d..0a5e58f9a0 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,39 +1,40 @@ -import { useStaticQuery, graphql } from 'gatsby'; +import { useStaticQuery, graphql } from "gatsby" const getAllGuidePages = () => { + const AllTheGuides = useStaticQuery( graphql` { allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^(?=guides/).*$/i" } } - frontmatter: { draft: { ne: true } } + filter: { + fileAbsolutePath: { ne: null } + fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + id + fields { + slug + guide_directory } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - title - subtitle - } - } + frontmatter { + title + subtitle } } } - `, + } + } + ` ); return AllTheGuides; -}; +} -function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { + function getChildrenForGuideDirectory (AllTheGuides, guideDirectory) { const ChildItems = []; for (let item of AllTheGuides) { if (item.node.fields.guide_directory === guideDirectory) { @@ -46,9 +47,9 @@ function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { return ChildItems; } -function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { +function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { for (let item of AllTheGuides) { - if (item.node.fields.slug === '/' + guideDirectory) { + if (item.node.fields.slug === "/" + guideDirectory) { return item.node.frontmatter.title; } } @@ -57,13 +58,10 @@ function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { const getGuideDirectory = (guideDirectory) => { const AllGuides = getAllGuidePages(); return { - link: '/' + guideDirectory, + link: "/" + guideDirectory, title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), - children: getChildrenForGuideDirectory( - AllGuides.allGuides.edges, - guideDirectory, - ), - }; -}; + children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, guideDirectory) + } +} export default getGuideDirectory; diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 5ea4595e2c..ea3fff5694 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,41 +1,45 @@ -import CertificationItems from './submenus/certification'; -import getGuideDirectory from './getGuideDirectory'; +import CertificationItems from "./submenus/certification"; +import getGuideDirectory from "./getGuideDirectory"; const getOmniItems = () => { + const OmniItems = [ + { - link: '/get-startedasdf', - title: 'Get Started', + link: "/get-startedasdf", + title: "Get Started", }, { - link: '/guides/decoupled', - title: 'Front-End Sites', + link: "/guides/decoupled", + title: "Front-End Sites", children: [ - getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), - getGuideDirectory('guides/decoupled/wp-backend-starters'), - ], + + getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), + getGuideDirectory("guides/decoupled/wp-backend-starters"), + ] }, { - link: '/certification', - title: 'WebOps Certification', - children: CertificationItems, + link: "/certification", + title: "WebOps Certification", + children: CertificationItems }, - { - link: '/get-started', - title: 'Get Started', - children: [ { - link: '/get-startasdfasdfed', - title: 'Get Started More', - }, + link: "/get-started", + title: "Get Started", + children: [{ + link: "/get-startasdfasdfed", + title: "Get Started More", + }, { - link: '/get-staasdfrted', - title: 'Get Started More', + link: "/get-staasdfrted", + title: "Get Started More", }, - ], + ] }, - ]; + ] + ; + return OmniItems; -}; +} export default getOmniItems; diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 760ae89dd2..2f6de53004 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,4 +1,4 @@ -import getOmniItems from './getOmniItems'; +import getOmniItems from "./getOmniItems"; function findParentWithActiveLink(NestedItems, activePage) { // This function will return the top-level array of items that contains the active page @@ -23,13 +23,14 @@ function containsActiveLink(item, activePage) { return false; } -const getOmniSidebarActiveSection = ({ activePage }) => { +const getOmniSidebarActiveSection = ({activePage}) => { const OmniItems = getOmniItems(); if (OmniItems) { return [findParentWithActiveLink(OmniItems, activePage)]; - } else { + } + else { return undefined; } -}; +} export default getOmniSidebarActiveSection; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 14fc2fe21e..3e3e1690b6 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,8 +1,8 @@ -import React from 'react'; -import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; -import getOmniSidebarActiveSection from './getOmniSidebarActiveSection.js'; -import Navbar from '../navbar'; -import getOmniItems from './getOmniItems'; +import React from "react" +import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" +import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; +import Navbar from "../navbar" +import getOmniItems from "./getOmniItems"; function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { @@ -13,45 +13,46 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { return undefined; } -const OmniSidebarNav = ({ - activePage, - fallbackItems = null, - fallbackTitle = '', - submenuPathToUse = '', -}) => { + +const OmniSidebarNav = ({ activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = '' }) => { + const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { + const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); return ( - ); + links={submenuLinks[0].links} /> + ) } // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - console.log('menuItems', menuItems); - console.log('OmniLinks', OmniLinks); + console.log("menuItems", menuItems); + console.log("OmniLinks", OmniLinks); return ( - - ); - } else if (fallbackItems && fallbackItems.length > 0) { + + ) + } + else if (fallbackItems && fallbackItems.length > 0) { return ( - ); - } else { + ) + } + else { return
; } -}; +} export default OmniSidebarNav; diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js index e19b26293d..beb91dfe57 100644 --- a/src/components/omniSidebarNav/submenus/certification.js +++ b/src/components/omniSidebarNav/submenus/certification.js @@ -1,66 +1,66 @@ const CertificationItems = [ { - link: '/certification/about', - title: 'About the Certification Program', + link: "/certification/about", + title: "About the Certification Program", }, { - link: '/certification/exam', - title: 'Taking the Exam', + link: "/certification/exam", + title: "Taking the Exam", }, { - link: '/certification/study-guide', - title: 'Study Guide', + link: "/certification/study-guide", + title: "Study Guide", children: [ { - link: '/certification/study-guide', - title: 'Introduction', + link: "/certification/study-guide", + title: "Introduction", }, { - link: '/certification/study-guide/webops', - title: 'Chapter 1: WebOps', + link: "/certification/study-guide/webops", + title: "Chapter 1: WebOps", }, { - link: '/certification/study-guide/platform', - title: 'Chapter 2: Pantheon Platform', + link: "/certification/study-guide/platform", + title: "Chapter 2: Pantheon Platform", }, { - link: '/certification/study-guide/create', - title: 'Chapter 3: Site Creation', + link: "/certification/study-guide/create", + title: "Chapter 3: Site Creation", }, { - link: '/certification/study-guide/cdn', - title: 'Chapter 4: Content Delivery Network', + link: "/certification/study-guide/cdn", + title: "Chapter 4: Content Delivery Network", }, { - link: '/certification/study-guide/cms', - title: 'Chapter 5: CMS Infrastructure', + link: "/certification/study-guide/cms", + title: "Chapter 5: CMS Infrastructure", }, { - link: '/certification/study-guide/deploy', - title: 'Chapter 6: The Deployment Pipeline', + link: "/certification/study-guide/deploy", + title: "Chapter 6: The Deployment Pipeline", }, { - link: '/certification/study-guide/people', - title: 'Chapter 7: Connecting People', + link: "/certification/study-guide/people", + title: "Chapter 7: Connecting People", }, { - link: '/certification/study-guide/extend', - title: 'Chapter 8: Extend with CLI and Hooks', + link: "/certification/study-guide/extend", + title: "Chapter 8: Extend with CLI and Hooks", }, { - link: '/certification/study-guide/automate', - title: 'Chapter 9: Additional Automation', + link: "/certification/study-guide/automate", + title: "Chapter 9: Additional Automation", }, { - link: '/certification/study-guide/custom-upstreams', - title: 'Chapter 10: Custom Upstreams', + link: "/certification/study-guide/custom-upstreams", + title: "Chapter 10: Custom Upstreams", }, - ], + ] }, { - link: 'https://certification.pantheon.io/', - title: '↗ Certification Directory', + link: "https://certification.pantheon.io/", + title: "↗ Certification Directory", }, -]; +] export default CertificationItems; From 72e60979a038de206dd33e4e7cb8ac428b649434 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:01:31 -0500 Subject: [PATCH 064/259] small prettier formatting --- .../omniSidebarNav/getGuideDirectory.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 0a5e58f9a0..df2a34d185 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -34,7 +34,7 @@ const getAllGuidePages = () => { return AllTheGuides; } - function getChildrenForGuideDirectory (AllTheGuides, guideDirectory) { +function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { const ChildItems = []; for (let item of AllTheGuides) { if (item.node.fields.guide_directory === guideDirectory) { @@ -47,9 +47,9 @@ const getAllGuidePages = () => { return ChildItems; } -function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { +function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { for (let item of AllTheGuides) { - if (item.node.fields.slug === "/" + guideDirectory) { + if (item.node.fields.slug === '/' + guideDirectory) { return item.node.frontmatter.title; } } @@ -58,10 +58,13 @@ function getTitleForGuideDirectory (AllTheGuides, guideDirectory) { const getGuideDirectory = (guideDirectory) => { const AllGuides = getAllGuidePages(); return { - link: "/" + guideDirectory, + link: '/' + guideDirectory, title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), - children: getChildrenForGuideDirectory(AllGuides.allGuides.edges, guideDirectory) - } -} + children: getChildrenForGuideDirectory( + AllGuides.allGuides.edges, + guideDirectory, + ), + }; +}; export default getGuideDirectory; From 31c19540cca04676894cc7cc68c2475dc5fa6d67 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:03:19 -0500 Subject: [PATCH 065/259] formatting --- src/components/omniSidebarNav/getGuideDirectory.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index df2a34d185..993bcf195b 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,4 +1,4 @@ -import { useStaticQuery, graphql } from "gatsby" +import { useStaticQuery, graphql } from "gatsby"; const getAllGuidePages = () => { @@ -8,7 +8,11 @@ const getAllGuidePages = () => { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: {guide_directory: {regex: "/^(?=guides\/).*$/i" }}, + fields: { + guide_directory: { + regex: "/^(?=guides\/).*$/i" + } + }, frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 7715255235429e025c6c3aa4c521f20150cb28c4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:05:08 -0500 Subject: [PATCH 066/259] manual spacing --- src/components/omniSidebarNav/getGuideDirectory.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 993bcf195b..f410e0d553 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -6,13 +6,13 @@ const getAllGuidePages = () => { graphql` { allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: { - guide_directory: { - regex: "/^(?=guides\/).*$/i" - } - }, + filter: { + fileAbsolutePath: { ne: null } + fields: { + guide_directory: { + regex: "/^(?=guides\/).*$/i" + } + }, frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 14c826ba1dffce605cbed4dbc34b173ba0eacef7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:08:29 -0500 Subject: [PATCH 067/259] more manual --- .../omniSidebarNav/getGuideDirectory.js | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index f410e0d553..3af27032c2 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,4 +1,4 @@ -import { useStaticQuery, graphql } from "gatsby"; +import { useStaticQuery, graphql } from 'gatsby'; const getAllGuidePages = () => { @@ -7,14 +7,20 @@ const getAllGuidePages = () => { { allGuides: allMdx( filter: { - fileAbsolutePath: { ne: null } + fileAbsolutePath: { + ne: null + } fields: { - guide_directory: { - regex: "/^(?=guides\/).*$/i" + guide_directory: { + regex: "/^(?=guides\/).*$/i" + } + }, + frontmatter: { + draft: { + ne: true } - }, - frontmatter: { draft: { ne: true } } - } + } + } sort: { fields: [fileAbsolutePath], order: ASC } ) { edges { From 3f1cc9cab1a29fa65f863e21f299191e05eb4049 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:14:22 -0500 Subject: [PATCH 068/259] manual formatting --- .../omniSidebarNav/getGuideDirectory.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 3af27032c2..2a098ac2cb 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -7,21 +7,11 @@ const getAllGuidePages = () => { { allGuides: allMdx( filter: { - fileAbsolutePath: { - ne: null - } - fields: { - guide_directory: { - regex: "/^(?=guides\/).*$/i" - } - }, - frontmatter: { - draft: { - ne: true - } + fileAbsolutePath: { ne: null } + fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } }, + frontmatter: { draft: { ne: true } } } - } - sort: { fields: [fileAbsolutePath], order: ASC } + sort: { fields: [fileAbsolutePath], order: ASC } ) { edges { node { From 708a88b6a988423b8df7113f632c210e49d1476a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:16:53 -0500 Subject: [PATCH 069/259] prettier with manual fix --- .../omniSidebarNav/getGuideDirectory.js | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 2a098ac2cb..1375b932bf 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,38 +1,37 @@ import { useStaticQuery, graphql } from 'gatsby'; const getAllGuidePages = () => { - const AllTheGuides = useStaticQuery( graphql` { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } }, + fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - id - fields { - slug - guide_directory - } - frontmatter { - title - subtitle + ) { + edges { + node { + id + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } } } } - } - } - ` + `, ); return AllTheGuides; -} +}; function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { const ChildItems = []; From 1875b16f8b2d37507e20b4a8597b652469cd368a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 1 Jul 2024 18:19:48 -0500 Subject: [PATCH 070/259] prettier fixes --- src/components/omniSidebarNav/getOmniItems.js | 52 +++++++-------- .../getOmniSidebarActiveSection.js | 9 ++- src/components/omniSidebarNav/index.js | 45 +++++++------ .../omniSidebarNav/submenus/certification.js | 64 +++++++++---------- 4 files changed, 82 insertions(+), 88 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index ea3fff5694..5ea4595e2c 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,45 +1,41 @@ -import CertificationItems from "./submenus/certification"; -import getGuideDirectory from "./getGuideDirectory"; +import CertificationItems from './submenus/certification'; +import getGuideDirectory from './getGuideDirectory'; const getOmniItems = () => { - const OmniItems = [ - { - link: "/get-startedasdf", - title: "Get Started", + link: '/get-startedasdf', + title: 'Get Started', }, { - link: "/guides/decoupled", - title: "Front-End Sites", + link: '/guides/decoupled', + title: 'Front-End Sites', children: [ - - getGuideDirectory("guides/decoupled/wp-nextjs-frontend-starters"), - getGuideDirectory("guides/decoupled/wp-backend-starters"), - ] + getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), + getGuideDirectory('guides/decoupled/wp-backend-starters'), + ], }, { - link: "/certification", - title: "WebOps Certification", - children: CertificationItems + link: '/certification', + title: 'WebOps Certification', + children: CertificationItems, }, + { + link: '/get-started', + title: 'Get Started', + children: [ { - link: "/get-started", - title: "Get Started", - children: [{ - link: "/get-startasdfasdfed", - title: "Get Started More", - }, + link: '/get-startasdfasdfed', + title: 'Get Started More', + }, { - link: "/get-staasdfrted", - title: "Get Started More", + link: '/get-staasdfrted', + title: 'Get Started More', }, - ] + ], }, - ] - ; - + ]; return OmniItems; -} +}; export default getOmniItems; diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 2f6de53004..760ae89dd2 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,4 +1,4 @@ -import getOmniItems from "./getOmniItems"; +import getOmniItems from './getOmniItems'; function findParentWithActiveLink(NestedItems, activePage) { // This function will return the top-level array of items that contains the active page @@ -23,14 +23,13 @@ function containsActiveLink(item, activePage) { return false; } -const getOmniSidebarActiveSection = ({activePage}) => { +const getOmniSidebarActiveSection = ({ activePage }) => { const OmniItems = getOmniItems(); if (OmniItems) { return [findParentWithActiveLink(OmniItems, activePage)]; - } - else { + } else { return undefined; } -} +}; export default getOmniSidebarActiveSection; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 3e3e1690b6..14fc2fe21e 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,8 +1,8 @@ -import React from "react" -import { SidebarNav, turnItemsIntoLinks } from "../sidebarNav" -import getOmniSidebarActiveSection from "./getOmniSidebarActiveSection.js"; -import Navbar from "../navbar" -import getOmniItems from "./getOmniItems"; +import React from 'react'; +import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; +import getOmniSidebarActiveSection from './getOmniSidebarActiveSection.js'; +import Navbar from '../navbar'; +import getOmniItems from './getOmniItems'; function findSubMenuItemsToUse(maximumParent, NestedItems) { for (let item of NestedItems) { @@ -13,46 +13,45 @@ function findSubMenuItemsToUse(maximumParent, NestedItems) { return undefined; } - -const OmniSidebarNav = ({ activePage, fallbackItems = null, fallbackTitle = '', submenuPathToUse = '' }) => { - +const OmniSidebarNav = ({ + activePage, + fallbackItems = null, + fallbackTitle = '', + submenuPathToUse = '', +}) => { const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { - const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); return ( - ) + links={submenuLinks[0].links} + /> + ); } // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - console.log("menuItems", menuItems); - console.log("OmniLinks", OmniLinks); + console.log('menuItems', menuItems); + console.log('OmniLinks', OmniLinks); return ( - - ) - } - else if (fallbackItems && fallbackItems.length > 0) { + + ); + } else if (fallbackItems && fallbackItems.length > 0) { return ( - ) - } - else { + ); + } else { return
; } -} +}; export default OmniSidebarNav; diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js index beb91dfe57..e19b26293d 100644 --- a/src/components/omniSidebarNav/submenus/certification.js +++ b/src/components/omniSidebarNav/submenus/certification.js @@ -1,66 +1,66 @@ const CertificationItems = [ { - link: "/certification/about", - title: "About the Certification Program", + link: '/certification/about', + title: 'About the Certification Program', }, { - link: "/certification/exam", - title: "Taking the Exam", + link: '/certification/exam', + title: 'Taking the Exam', }, { - link: "/certification/study-guide", - title: "Study Guide", + link: '/certification/study-guide', + title: 'Study Guide', children: [ { - link: "/certification/study-guide", - title: "Introduction", + link: '/certification/study-guide', + title: 'Introduction', }, { - link: "/certification/study-guide/webops", - title: "Chapter 1: WebOps", + link: '/certification/study-guide/webops', + title: 'Chapter 1: WebOps', }, { - link: "/certification/study-guide/platform", - title: "Chapter 2: Pantheon Platform", + link: '/certification/study-guide/platform', + title: 'Chapter 2: Pantheon Platform', }, { - link: "/certification/study-guide/create", - title: "Chapter 3: Site Creation", + link: '/certification/study-guide/create', + title: 'Chapter 3: Site Creation', }, { - link: "/certification/study-guide/cdn", - title: "Chapter 4: Content Delivery Network", + link: '/certification/study-guide/cdn', + title: 'Chapter 4: Content Delivery Network', }, { - link: "/certification/study-guide/cms", - title: "Chapter 5: CMS Infrastructure", + link: '/certification/study-guide/cms', + title: 'Chapter 5: CMS Infrastructure', }, { - link: "/certification/study-guide/deploy", - title: "Chapter 6: The Deployment Pipeline", + link: '/certification/study-guide/deploy', + title: 'Chapter 6: The Deployment Pipeline', }, { - link: "/certification/study-guide/people", - title: "Chapter 7: Connecting People", + link: '/certification/study-guide/people', + title: 'Chapter 7: Connecting People', }, { - link: "/certification/study-guide/extend", - title: "Chapter 8: Extend with CLI and Hooks", + link: '/certification/study-guide/extend', + title: 'Chapter 8: Extend with CLI and Hooks', }, { - link: "/certification/study-guide/automate", - title: "Chapter 9: Additional Automation", + link: '/certification/study-guide/automate', + title: 'Chapter 9: Additional Automation', }, { - link: "/certification/study-guide/custom-upstreams", - title: "Chapter 10: Custom Upstreams", + link: '/certification/study-guide/custom-upstreams', + title: 'Chapter 10: Custom Upstreams', }, - ] + ], }, { - link: "https://certification.pantheon.io/", - title: "↗ Certification Directory", + link: 'https://certification.pantheon.io/', + title: '↗ Certification Directory', }, -] +]; export default CertificationItems; From 9e185ef70543ff2eedf20b31ade13eaa0437b5a8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 17:57:24 -0500 Subject: [PATCH 071/259] simplify regex --- src/components/omniSidebarNav/getGuideDirectory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 1375b932bf..87242a07d8 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -7,7 +7,7 @@ const getAllGuidePages = () => { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } } + fields: { guide_directory: { regex: "/^guides\//" } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 7f95a83a676d09172624dce3378392ec75095819 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 18:41:19 -0500 Subject: [PATCH 072/259] prettier comment --- src/components/omniSidebarNav/getGuideDirectory.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 87242a07d8..412d9757ae 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -2,12 +2,15 @@ import { useStaticQuery, graphql } from 'gatsby'; const getAllGuidePages = () => { const AllTheGuides = useStaticQuery( + // // prettier-ignore + // Prettier is disabled for this query because it doesn't handle the + // regex in the filter well. graphql` { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^guides\//" } } + fields: { guide_directory: { regex: "/^guides\/" } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 37371211268e62b5b279a5cecc558e9b4282ee75 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 18:45:27 -0500 Subject: [PATCH 073/259] Revert "prettier comment" This reverts commit 7f95a83a676d09172624dce3378392ec75095819. --- src/components/omniSidebarNav/getGuideDirectory.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 412d9757ae..87242a07d8 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -2,15 +2,12 @@ import { useStaticQuery, graphql } from 'gatsby'; const getAllGuidePages = () => { const AllTheGuides = useStaticQuery( - // // prettier-ignore - // Prettier is disabled for this query because it doesn't handle the - // regex in the filter well. graphql` { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^guides\/" } } + fields: { guide_directory: { regex: "/^guides\//" } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 05b2c70f8bcbc9b4cce3eda291afaacb04a0398a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 18:47:38 -0500 Subject: [PATCH 074/259] going back to work regex --- src/components/omniSidebarNav/getGuideDirectory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 87242a07d8..1375b932bf 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -7,7 +7,7 @@ const getAllGuidePages = () => { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^guides\//" } } + fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From ab1beb28b1cf5c3500e5d05ce55dfeee12e6de3b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 18:56:14 -0500 Subject: [PATCH 075/259] I do not even need the regex --- src/components/omniSidebarNav/getGuideDirectory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 1375b932bf..239f54799a 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -7,7 +7,7 @@ const getAllGuidePages = () => { allGuides: allMdx( filter: { fileAbsolutePath: { ne: null } - fields: { guide_directory: { regex: "/^(?=guides\/).*$/i" } } + fields: { guide_directory: { ne: null } } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } From 5af02ea1673ae1d0f5630aaef5551d02458c0215 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 20:28:51 -0500 Subject: [PATCH 076/259] adding vitest --- package-lock.json | 2375 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 3 +- 2 files changed, 2322 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee7771210d..2e3dc01052 100644 --- a/package-lock.json +++ b/package-lock.json @@ -69,7 +69,8 @@ "date-fns": "^2.29.3", "mark.js": "^8.11.1", "prettier": "^2.8.3", - "react-date-range": "^1.4.0" + "react-date-range": "^1.4.0", + "vitest": "^1.6.0" }, "engines": { "node": ">=18.0.0 <20.0.0" @@ -2258,6 +2259,374 @@ "partytown": "bin/partytown.cjs" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -3211,6 +3580,18 @@ "node": ">=8" } }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jest/source-map": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", @@ -5143,6 +5524,214 @@ "node": ">=14.0.0" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -5161,6 +5750,12 @@ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -5393,9 +5988,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/get-port": { "version": "3.2.0", @@ -5865,6 +6460,175 @@ "resolve": "^1.10.0" } }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -6029,9 +6793,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "bin": { "acorn": "bin/acorn" }, @@ -6095,9 +6859,12 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -6455,6 +7222,15 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -7460,6 +8236,15 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cache-manager": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", @@ -7617,6 +8402,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/chainsaw": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", @@ -7726,6 +8529,18 @@ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, "node_modules/cheerio": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", @@ -8299,6 +9114,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -8947,6 +9768,18 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/deep-equal": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", @@ -9698,6 +10531,44 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -10533,6 +11404,15 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -11393,9 +12273,9 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -14132,6 +15012,15 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -18346,6 +19235,22 @@ "node": ">=8.9.0" } }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -18524,6 +19429,15 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -18576,6 +19490,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -19342,6 +20265,18 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -19418,9 +20353,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -20468,6 +21403,21 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -20486,9 +21436,9 @@ "integrity": "sha512-rxJOljMuWtYlvREBmd6TZYanfcPhNUKtGDZBjBBS8WG1dpN2iwPsRJZgQqN/OtJuiQckdRFOfzogqJClTrsi7g==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -20520,6 +21470,17 @@ "node": ">=8" } }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "dev": true, + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", @@ -20579,9 +21540,9 @@ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -20590,12 +21551,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -22815,6 +23780,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, "node_modules/rss": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz", @@ -23466,6 +24466,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -23692,9 +24698,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -23797,6 +24803,12 @@ "node": ">=8" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", @@ -23845,6 +24857,12 @@ "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -24069,6 +25087,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, "node_modules/strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", @@ -24500,6 +25536,30 @@ "next-tick": "1" } }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/title-case": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", @@ -24821,6 +25881,12 @@ "node": "*" } }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -25515,6 +26581,341 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vite": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -25797,6 +27198,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -27648,6 +29065,167 @@ "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz", "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==" }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -28400,6 +29978,15 @@ } } }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, "@jest/source-map": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", @@ -29771,6 +31358,118 @@ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==" }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "dev": true, + "optional": true + }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -29789,6 +31488,12 @@ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, "@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -29986,9 +31691,9 @@ } }, "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "@types/get-port": { "version": "3.2.0", @@ -30369,6 +32074,133 @@ "resolve": "^1.10.0" } }, + "@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dev": true, + "requires": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + } + }, + "@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dev": true, + "requires": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "dependencies": { + "p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true + } + } + }, + "@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dev": true, + "requires": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + } + } + }, + "@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dev": true, + "requires": { + "tinyspy": "^2.2.0" + } + }, + "@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dev": true, + "requires": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + } + } + }, "@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -30530,9 +32362,9 @@ } }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==" }, "acorn-globals": { "version": "6.0.0", @@ -30576,9 +32408,12 @@ } }, "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "requires": { + "acorn": "^8.11.0" + } }, "address": { "version": "1.1.2", @@ -30839,6 +32674,12 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -31580,6 +33421,12 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true + }, "cache-manager": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", @@ -31699,6 +33546,21 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" }, + "chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, "chainsaw": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", @@ -31783,6 +33645,15 @@ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } + }, "cheerio": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", @@ -32258,6 +34129,12 @@ } } }, + "confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -32721,6 +34598,15 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, + "deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, "deep-equal": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", @@ -33311,6 +35197,37 @@ "es6-symbol": "^3.1.1" } }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -33896,6 +35813,15 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -34548,9 +36474,9 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "optional": true }, "function-bind": { @@ -36638,6 +38564,12 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true + }, "get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -39611,6 +41543,16 @@ "json5": "^2.1.2" } }, + "local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "requires": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -39779,6 +41721,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.1" + } + }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -39822,6 +41773,15 @@ "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", "dev": true }, + "magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -40393,6 +42353,18 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, + "mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dev": true, + "requires": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, "moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -40454,9 +42426,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, "napi-build-utils": { "version": "1.0.2", @@ -41221,6 +43193,18 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, + "pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, "peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -41232,9 +43216,9 @@ "integrity": "sha512-rxJOljMuWtYlvREBmd6TZYanfcPhNUKtGDZBjBBS8WG1dpN2iwPsRJZgQqN/OtJuiQckdRFOfzogqJClTrsi7g==" }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "picomatch": { "version": "2.3.1", @@ -41254,6 +43238,17 @@ "find-up": "^4.0.0" } }, + "pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "dev": true, + "requires": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, "pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", @@ -41300,13 +43295,13 @@ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" } }, "postcss-calc": { @@ -42916,6 +44911,32 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@types/estree": "1.0.5", + "fsevents": "~2.3.2" + } + }, "rss": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz", @@ -43420,6 +45441,12 @@ "object-inspect": "^1.9.0" } }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -43584,9 +45611,9 @@ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" }, "source-map-support": { "version": "0.5.21", @@ -43665,6 +45692,12 @@ } } }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, "stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", @@ -43708,6 +45741,12 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, "stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -43882,6 +45921,23 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, + "strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "requires": { + "js-tokens": "^9.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + } + } + }, "strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", @@ -44188,6 +46244,24 @@ "next-tick": "1" } }, + "tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true + }, + "tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true + }, + "tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true + }, "title-case": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", @@ -44422,6 +46496,12 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==" }, + "ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -44928,6 +47008,181 @@ "unist-util-stringify-position": "^2.0.0" } }, + "vite": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "dev": true, + "requires": { + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + } + }, + "vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dev": true, + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + } + }, + "vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dev": true, + "requires": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + } + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -45156,6 +47411,16 @@ "is-typed-array": "^1.1.10" } }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", diff --git a/package.json b/package.json index ae9c5c4106..f31837e403 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,8 @@ "date-fns": "^2.29.3", "mark.js": "^8.11.1", "prettier": "^2.8.3", - "react-date-range": "^1.4.0" + "react-date-range": "^1.4.0", + "vitest": "^1.6.0" }, "homepage": "https://github.com/gatsbyjs/gatsby-starter-blog#readme", "keywords": [ From cc5dda8d234403591b7c594a14a41e7f66d9cfbe Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 20:34:55 -0500 Subject: [PATCH 077/259] adding unit tests samples --- src/components/omniSidebarNav/sum.js | 3 +++ src/components/omniSidebarNav/sum.test.js | 7 +++++++ 2 files changed, 10 insertions(+) create mode 100644 src/components/omniSidebarNav/sum.js create mode 100644 src/components/omniSidebarNav/sum.test.js diff --git a/src/components/omniSidebarNav/sum.js b/src/components/omniSidebarNav/sum.js new file mode 100644 index 0000000000..50a1ccdb59 --- /dev/null +++ b/src/components/omniSidebarNav/sum.js @@ -0,0 +1,3 @@ +export function sum(a, b) { + return a + b +} diff --git a/src/components/omniSidebarNav/sum.test.js b/src/components/omniSidebarNav/sum.test.js new file mode 100644 index 0000000000..da4f214540 --- /dev/null +++ b/src/components/omniSidebarNav/sum.test.js @@ -0,0 +1,7 @@ +import { expect, test } from 'vitest' +import { sum } from './sum' + +test('adds 1 + 2 to equal 3', () => { + expect(sum(1, 2)).toBe(3) + +}) From 087f29a34cc0f82df81f7c7fa8d53ca72dd5383c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 21:33:46 -0500 Subject: [PATCH 078/259] moving helper functions to their own file --- src/components/omniSidebarNav/helpers.js | 12 +++++++ src/components/omniSidebarNav/helpers.test.js | 31 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/components/omniSidebarNav/helpers.js create mode 100644 src/components/omniSidebarNav/helpers.test.js diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js new file mode 100644 index 0000000000..a2f7ecab24 --- /dev/null +++ b/src/components/omniSidebarNav/helpers.js @@ -0,0 +1,12 @@ + + +const findSubMenuItemsToUse = function (maximumParent, NestedItems) { + for (let item of NestedItems) { + if (item.link === maximumParent) { + return item; + } + } + return undefined; +} + +export {findSubMenuItemsToUse }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js new file mode 100644 index 0000000000..ad3898c724 --- /dev/null +++ b/src/components/omniSidebarNav/helpers.test.js @@ -0,0 +1,31 @@ +import { expect, test } from 'vitest' +import { sum } from './sum' +import { findSubMenuItemsToUse } from './helpers' + +test('adds 1 + 2 to equal 3', () => { + expect(sum(1, 2)).toBe(3) + +}) + +const sampleItems = [ + { + link: 'test', + }, + { + link: 'test2', + }, +] + +test('finds sub menu to use', () => { + const maximumParent = 'test' + expect(findSubMenuItemsToUse(maximumParent, sampleItems)).toEqual({ link: 'test' }) + expect(sum(1, 2)).toBe(3) +}) + + +// test('finds sub menu items to use', () => { +// // const maximumParent = 'test' +// // const NestedItems = [{link: 'test'}] +// // expect(findSubMenuItemsToUse(maximumParent, NestedItems)).toEqual({link: 'test'}) +// } + From 4f710c51a1a967c5d03339006e8dc27a1c5ec29c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 21:46:10 -0500 Subject: [PATCH 079/259] more testing --- .../omniSidebarNav/allGuides.testfixture.js | 6166 +++++++++++++++++ .../omniSidebarNav/getGuideDirectory.js | 1 - src/components/omniSidebarNav/helpers.js | 4 +- src/components/omniSidebarNav/helpers.test.js | 11 +- src/components/omniSidebarNav/index.js | 10 +- 5 files changed, 6172 insertions(+), 20 deletions(-) create mode 100644 src/components/omniSidebarNav/allGuides.testfixture.js diff --git a/src/components/omniSidebarNav/allGuides.testfixture.js b/src/components/omniSidebarNav/allGuides.testfixture.js new file mode 100644 index 0000000000..e97c406fc4 --- /dev/null +++ b/src/components/omniSidebarNav/allGuides.testfixture.js @@ -0,0 +1,6166 @@ +// A dump of the data from the GraphQL query used in the OmniSidebarNav component. +// This is kept in the repo for reference and as a fixture for unit tests. +const AllGuides = { + "allGuides": { + "edges": [ + { + "node": { + "fields": { + "slug": "/guides/accessibility", + "guide_directory": "guides/accessibility" + }, + "frontmatter": { + "title": "Accessibility Guide", + "subtitle": "Overview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/accessibility/get-started", + "guide_directory": "guides/accessibility" + }, + "frontmatter": { + "title": "Optimize Your Site for Accessibility", + "subtitle": "Getting Started" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/accessibility/best-practices", + "guide_directory": "guides/accessibility" + }, + "frontmatter": { + "title": "Optimize Your Site for Accessibility", + "subtitle": "Best Practices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/accessibility/tools", + "guide_directory": "guides/accessibility" + }, + "frontmatter": { + "title": "Optimize Your Site for Accessibility", + "subtitle": "Pantheon Tools" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/accessibility/resources", + "guide_directory": "guides/accessibility" + }, + "frontmatter": { + "title": "Optimize Your Site for Accessibility", + "subtitle": "Resources" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/account", + "guide_directory": "guides/account-mgmt/account" + }, + "frontmatter": { + "title": "Manage Your Account", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/account/types", + "guide_directory": "guides/account-mgmt/account" + }, + "frontmatter": { + "title": "Manage Your Account", + "subtitle": "Account Types" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/account/recover", + "guide_directory": "guides/account-mgmt/account" + }, + "frontmatter": { + "title": "Manage Your Account", + "subtitle": "Recover Account" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/account/delete", + "guide_directory": "guides/account-mgmt/account" + }, + "frontmatter": { + "title": "Manage Your Account", + "subtitle": "Delete Your Account" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing/periods", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Billing Periods" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing/methods", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Payment Methods" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing/invoices", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Invoices and Subscriptions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing/transfer", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Transfer Ownership and Billing" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/billing/troubleshooting", + "guide_directory": "guides/account-mgmt/billing" + }, + "frontmatter": { + "title": "Billing for Self-Serve Accounts", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans/resources", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "Plan Resources" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans/pricing", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "Pricing" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans/site-plans", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "Site Hosting Plans and Addons" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans/workspace-plans", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "Account Tiers" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/plans/faq", + "guide_directory": "guides/account-mgmt/plans" + }, + "frontmatter": { + "title": "Plans", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/traffic", + "guide_directory": "guides/account-mgmt/traffic" + }, + "frontmatter": { + "title": "Traffic", + "subtitle": "Measuring Site Traffic" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/traffic/overages", + "guide_directory": "guides/account-mgmt/traffic" + }, + "frontmatter": { + "title": "Traffic", + "subtitle": "Overages Policy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/traffic/remedy", + "guide_directory": "guides/account-mgmt/traffic" + }, + "frontmatter": { + "title": "Traffic", + "subtitle": "Troubleshooting Traffic Events" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/workspace-sites-teams", + "guide_directory": "guides/account-mgmt/workspace-sites-teams" + }, + "frontmatter": { + "title": "Workspaces, Sites, and Teams", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/workspace-sites-teams/workspaces", + "guide_directory": "guides/account-mgmt/workspace-sites-teams" + }, + "frontmatter": { + "title": "Workspaces, Sites, and Teams", + "subtitle": "Workspaces" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/workspace-sites-teams/sites", + "guide_directory": "guides/account-mgmt/workspace-sites-teams" + }, + "frontmatter": { + "title": "Workspaces, Sites, and Teams", + "subtitle": "Sites" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/workspace-sites-teams/teams", + "guide_directory": "guides/account-mgmt/workspace-sites-teams" + }, + "frontmatter": { + "title": "Workspaces, Sites, and Teams", + "subtitle": "Teams" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/account-mgmt/workspace-sites-teams/tools", + "guide_directory": "guides/account-mgmt/workspace-sites-teams" + }, + "frontmatter": { + "title": "Workspaces, Sites, and Teams", + "subtitle": "Where Is...?" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/agcdn", + "guide_directory": "guides/agcdn" + }, + "frontmatter": { + "title": "Advanced Global CDN", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/agcdn/agcdn-features", + "guide_directory": "guides/agcdn" + }, + "frontmatter": { + "title": "Advanced Global CDN", + "subtitle": "AGCDN Features" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/agcdn/agcdn-wafio", + "guide_directory": "guides/agcdn" + }, + "frontmatter": { + "title": "Advanced Global CDN", + "subtitle": "AGCDN with WAF / IO Features" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/agcdn/submit-request", + "guide_directory": "guides/agcdn" + }, + "frontmatter": { + "title": "Advanced Global CDN", + "subtitle": "Submit a Request" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/agcdn/agcdn-faq", + "guide_directory": "guides/agcdn" + }, + "frontmatter": { + "title": "Advanced Global CDN", + "subtitle": "FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot-custom-upstream", + "guide_directory": "guides/autopilot-custom-upstream" + }, + "frontmatter": { + "title": "Autopilot for Custom Upstreams", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot-custom-upstream/autopilot-custom-upstream-config", + "guide_directory": "guides/autopilot-custom-upstream" + }, + "frontmatter": { + "title": "Autopilot for Custom Upstreams", + "subtitle": "Configure a Custom Upstream for Autopilot" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot-custom-upstream/wp-autopilot-custom-upstream", + "guide_directory": "guides/autopilot-custom-upstream" + }, + "frontmatter": { + "title": "Autopilot for Custom Upstreams", + "subtitle": "Custom Upstream and Autopilot for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/autopilot-preconfiguration/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Autopilot Pre-Configuration Checklist" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/enable-autopilot/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Autopilot Setup and Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/tests-results/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Tests and Results" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/apply-updates/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Apply Updates" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/autopilot-deactivate", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Deactivate Autopilot" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/troubleshoot-autopilot/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Troubleshoot Autopilot Error Messages" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/autopilot/autopilot-faq/", + "guide_directory": "guides/autopilot" + }, + "frontmatter": { + "title": "Pantheon Autopilot", + "subtitle": "Autopilot FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups/access-backups", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "Access Backups" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups/create-backups", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "Create Backups" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups/restore-from-backup", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "Restore a Backup" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups/code-archives-backups-log", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "Code Archives and Backup Log" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/backups/faqs-backups", + "guide_directory": "guides/backups" + }, + "frontmatter": { + "title": "Backups Tool", + "subtitle": "FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/create-project/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/pr-workflow/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Pull Request/Merge Request Workflow" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/configure/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Manage Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/extend/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Add a New Module" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/tests/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Write a New Test" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/merge/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Merge Your Work" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/custom-theme/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Create a Custom Theme" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/build-tools/update/", + "guide_directory": "guides/build-tools" + }, + "frontmatter": { + "title": "Build Tools", + "subtitle": "Update Your Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/create-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Create a Custom Upstream" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/manage-dependencies-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Manage Custom Upstream Dependencies" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/edit-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Edit an Existing Custom Upstream" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/delete-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Delete a Custom Upstream" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/maintain-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Custom Upstream Best Practices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/switch-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Switch Your Custom Upstream" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/test-custom-upstream", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Test Custom Upstream Changes Before Release" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/custom-upstream/troubleshooting", + "guide_directory": "guides/custom-upstream" + }, + "frontmatter": { + "title": "Custom Upstreams on Pantheon", + "subtitle": "Troubleshoot a Custom Upstream" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-backend-starters", + "guide_directory": "guides/decoupled/drupal-backend-starters" + }, + "frontmatter": { + "title": "Drupal Backend Starter for Front-End Sites", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-backend-starters/create", + "guide_directory": "guides/decoupled/drupal-backend-starters" + }, + "frontmatter": { + "title": "Drupal Backend Starter for Front-End Sites", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-backend-starters/caching", + "guide_directory": "guides/decoupled/drupal-backend-starters" + }, + "frontmatter": { + "title": "Drupal Backend Starter for Front-End Sites", + "subtitle": "Caching Recommendations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-backend-starters/manage-settings", + "guide_directory": "guides/decoupled/drupal-backend-starters" + }, + "frontmatter": { + "title": "Drupal Backend Starter for Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-backend-starters/build-hooks", + "guide_directory": "guides/decoupled/drupal-backend-starters" + }, + "frontmatter": { + "title": "Drupal Backend Starter for Front-End Sites", + "subtitle": "Configure Build Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/create", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/build-details", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "View and Trigger Builds" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/caching", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Caching Recommendations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/content-preview", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Configure Content Preview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing", + "guide_directory": "guides/decoupled/drupal-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "Drupal + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Robots.txt File and Indexing" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit/create", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "Create a Site- No Starter and/or CMS" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit/import-repo", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "Import Repository" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit/any-framework", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "Use a Non-official Frontend Framework" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit/build-details", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "View and Trigger Builds" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/no-starter-kit/manage-settings", + "guide_directory": "guides/decoupled/no-starter-kit" + }, + "frontmatter": { + "title": "Front-End Sites without a Starter Kit", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Overview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/considerations", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Requirements and Considerations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/site-options", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Site Options and Starter Kits" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/site", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Create a Front-End Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/manage-settings", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/fes-multidev", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Multidev Workflow and Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/support", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/faq", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Frequently Asked Questions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/troubleshooting", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Known Issues and Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/overview/v1-pipeline", + "guide_directory": "guides/decoupled/overview" + }, + "frontmatter": { + "title": "Pantheon Front-End Sites", + "subtitle": "Opting in to the V1 Pipeline" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-backend-starters", + "guide_directory": "guides/decoupled/wp-backend-starters" + }, + "frontmatter": { + "title": "WordPress Backend Starter for Front-End Sites", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-backend-starters/create", + "guide_directory": "guides/decoupled/wp-backend-starters" + }, + "frontmatter": { + "title": "WordPress Backend Starter for Front-End Sites", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-backend-starters/caching", + "guide_directory": "guides/decoupled/wp-backend-starters" + }, + "frontmatter": { + "title": "WordPress Backend Starter for Front-End Sites", + "subtitle": "Caching Recommendations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-backend-starters/manage-settings", + "guide_directory": "guides/decoupled/wp-backend-starters" + }, + "frontmatter": { + "title": "WordPress Backend Starter for Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-backend-starters/build-hooks", + "guide_directory": "guides/decoupled/wp-backend-starters" + }, + "frontmatter": { + "title": "WordPress Backend Starter for Front-End Sites", + "subtitle": "Build Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-gatsby-frontend-starters", + "guide_directory": "guides/decoupled/wp-gatsby-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Gatsby Frontend Starter for Front-End Sites", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-gatsby-frontend-starters/create", + "guide_directory": "guides/decoupled/wp-gatsby-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Gatsby Frontend Starter for Front-End Sites", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-gatsby-frontend-starters/build-details", + "guide_directory": "guides/decoupled/wp-gatsby-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Gatsby Frontend Starter for Front-End Sites", + "subtitle": "View and Trigger Builds" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-gatsby-frontend-starters/manage-settings", + "guide_directory": "guides/decoupled/wp-gatsby-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Gatsby Frontend Starter for Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing", + "guide_directory": "guides/decoupled/wp-gatsby-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Gatsby Frontend Starter for Front-End Sites", + "subtitle": "Robots.txt File and Indexing" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/create", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Create a New Project" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/build-details", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "View and Trigger Builds" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/caching", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Caching Recommendations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Manage Settings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Configure Content Preview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", + "guide_directory": "guides/decoupled/wp-nextjs-frontend-starters" + }, + "frontmatter": { + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "subtitle": "Robots.txt File and Indexing" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/disaster-recovery", + "guide_directory": "guides/disaster-recovery" + }, + "frontmatter": { + "title": "Pantheon Disaster Recovery Playbook", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/disaster-recovery/planning-ahead", + "guide_directory": "guides/disaster-recovery" + }, + "frontmatter": { + "title": "Pantheon Disaster Recovery Playbook", + "subtitle": "Planning Ahead" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/disaster-recovery/site-goes-down", + "guide_directory": "guides/disaster-recovery" + }, + "frontmatter": { + "title": "Pantheon Disaster Recovery Playbook", + "subtitle": "What to Do If Your Site Goes Down" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/disaster-recovery/incident-remediation", + "guide_directory": "guides/disaster-recovery" + }, + "frontmatter": { + "title": "Pantheon Disaster Recovery Playbook", + "subtitle": "Incident Remediation" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/dns", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Domain Name System" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/platform-domains", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Platform and Custom Domains", + "subtitle": "Platform Domains" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/primary-domain", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Primary Domains" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/custom-domains", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Custom Domains" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/vanity-domains", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Vanity Domains" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/hosts-file", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Modify the Local Hosts File" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/domain-hijacking", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Prevent Domain Hijacking" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/domains-faq", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/domains/troubleshooting", + "guide_directory": "guides/domains" + }, + "frontmatter": { + "title": "Domains on Pantheon", + "subtitle": "Troubleshoot Domains" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/prepare", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/copy-config", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Copy Existing Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/contrib-custom", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/database", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Add Database" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/backup-token", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Back Up the tokens.json File" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/upload-files", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Upload Files" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/restore-token", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Restore the tokens.json File" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/deploy", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-btworkflow/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-btworkflow" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site Created With the Pantheon Dashboard to the Latest Version of Drupal + Build Tools", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to the Latest Version of Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/prepare", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to Drupal", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/upgrade", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to Drupal", + "subtitle": "Upgrade Site Components Locally" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/core", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to the Latest Version of Drupal", + "subtitle": "Upgrade Drupal Core Using Composer" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/mariadb", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to Drupal", + "subtitle": "Confirm the MariaDB Version and Updates" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/deploy", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to the Latest Version of Drupal", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createbt/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-createbt" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created with Build Tools to the Latest Version of Drupal", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/new-branch", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Create a New Branch with Integrated Composer Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/dependencies", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Add Dependencies" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/contrib-custom", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/site-customizations", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Test Sites and Apply Customizations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/deploy-dev", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Deploy to Dev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/deploy-live", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Deploy to Live" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createcustom/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-createcustom" + }, + "frontmatter": { + "title": "Upgrade a Custom Upstream to the Latest Version of Drupal", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8/prepare", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8/drupal-core-version", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Set Drupal Core Version" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8/core-updates", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Configure Ongoing Core Updates" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8/deploy", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createdashboard-set8/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-createdashboard-set8" + }, + "frontmatter": { + "title": "Upgrade a Site Created With the Pantheon Dashboard to the Latest Version of Drupal", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/prepare", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/composer-upstream", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Add the Integrated Composer Upstream in a New Local Branch" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/contrib-custom", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/deploy-dev", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Deploy to Dev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/change-upstream", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Change Upstreams" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/dependency-versions", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Work With Dependency Versions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/deploy-live", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Deploy Live" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-createempty-md/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-createempty-md" + }, + "frontmatter": { + "title": "Upgrade a Site That Was Created With an Empty Upstream to the Latest Version of Drupal", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site with Multidev to the Latest Version of Drupal Using Multidev", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md/prepare", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site with Multidev to the Latest Version of Drupal Using Multidev", + "subtitle": "Prepare the Local Environment" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md/drupal-core-version", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site with Multidev to the Latest Version of Drupal Using Multidev", + "subtitle": "Set Drupal Core Version" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md/core-updates", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Multidev Site to the Latest Version of Drupal Using Multidev", + "subtitle": "Configure Ongoing Core Update" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md/deploy", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site with Multidev to the Latest Version of Drupal Using Multidev", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted-md/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted-md" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site with Multidev to the Latest Version of Drupal Using Multidev", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted/prepare", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted/create-site", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Create the Drupal Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted/code", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Upgrade the Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted/deploy", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-hosted/troubleshooting", + "guide_directory": "guides/drupal/drupal-hosted" + }, + "frontmatter": { + "title": "Upgrade a Drupal Site to the Latest Version of Drupal", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer-Managed Drupal Site from Another Platform", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/prepare", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/contrib-custom", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/deploy-dev", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Deploy to Dev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/database", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Add Your Database" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/files", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Upload Your Files" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/deploy-live", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted-composer/troubleshooting", + "guide_directory": "guides/drupal/drupal-unhosted-composer" + }, + "frontmatter": { + "title": "Migrate a Composer Managed Drupal Site from Another Platform", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/prepare", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Prepare Your Site for Migration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/copy-config", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Copy Existing Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/contrib-custom", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/deploy-dev", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Deploy to Dev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/add-database", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Add Database" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/upload-files", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Upload Files" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/deploy", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drupal-unhosted/troubleshooting", + "guide_directory": "guides/drupal/drupal-unhosted" + }, + "frontmatter": { + "title": "Migrate a Drupal Site from Another Platform", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-versions", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Manage Drush Versions on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-commands", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Drush Commands" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drupal-commandline", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Create a Drupal Site From the Command Line Using Terminus and Drush" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-import", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Import Drush Site Archives with Terminus" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-aliases", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Drush Aliases" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-sql-queries", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Drush SQL Queries" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/drush-known-limitations", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Drush Known Limitations with Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/drush/troubleshoot-drush", + "guide_directory": "guides/drush" + }, + "frontmatter": { + "title": "Drupal Drush Command-Line Utility on Pantheon", + "subtitle": "Troubleshoot Drush" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/edge-integrations/", + "guide_directory": "guides/edge-integrations" + }, + "frontmatter": { + "title": "Edge Integrations", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/edge-integrations/configuration-overview/", + "guide_directory": "guides/edge-integrations" + }, + "frontmatter": { + "title": "Edge Integrations", + "subtitle": "Configuration Overview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/edge-integrations/drupal-sdk/", + "guide_directory": "guides/edge-integrations" + }, + "frontmatter": { + "title": "Edge Integrations", + "subtitle": "Drupal SDK" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/edge-integrations/wordpress-sdk/", + "guide_directory": "guides/edge-integrations" + }, + "frontmatter": { + "title": "Edge Integrations", + "subtitle": "WordPress SDK" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/edge-integrations/analytics/", + "guide_directory": "guides/edge-integrations" + }, + "frontmatter": { + "title": "Edge Integrations", + "subtitle": "Analytics" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/enterprise-billing-center", + "guide_directory": "guides/enterprise-billing-center" + }, + "frontmatter": { + "title": "Enterprise Billing Center", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/enterprise-billing-center/invoices", + "guide_directory": "guides/enterprise-billing-center" + }, + "frontmatter": { + "title": "Enterprise Billing Center", + "subtitle": "Access Invoices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/enterprise-billing-center/site-portfolio-report", + "guide_directory": "guides/enterprise-billing-center" + }, + "frontmatter": { + "title": "Enterprise Billing Center", + "subtitle": "Site Portfolio Report Overview" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/enterprise-billing-center/interacting", + "guide_directory": "guides/enterprise-billing-center" + }, + "frontmatter": { + "title": "Enterprise Billing Center", + "subtitle": "Access Site Portfolio Reports" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/enterprise-billing-center/faq", + "guide_directory": "guides/enterprise-billing-center" + }, + "frontmatter": { + "title": "Enterprise Billing Center", + "subtitle": "FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Environment Configuration on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration/read-environment-config", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Reading Pantheon Environment Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration/environment-indicator", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Configuring Environment Indicators" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration/environment-specific-config", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Environment-Specific Configuration for WordPress Sites" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration/environment-specific-config-drupal", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Environment-Specific Configurations for Drupal" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/environment-configuration/restore-environment-backup", + "guide_directory": "guides/environment-configuration" + }, + "frontmatter": { + "title": "Environment Configuration", + "subtitle": "Restoring an Environment from a Backup" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/4xx-errors", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "4xx Level Errors" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/5xx-errors", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "5xx Level Errors" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/retries-server-containers", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "Retries Across Application Server Containers (High Availability)" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/external-web-service-calls", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "External Web Service Calls" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/overloaded-workers", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "Overloaded Workers" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/errors-and-server-responses/slow-and-high-queries", + "guide_directory": "guides/errors-and-server-responses" + }, + "frontmatter": { + "title": "Errors and Server Responses", + "subtitle": "Slow Queries and High Query Volumes" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/connect-fastly", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Connect Your Fastly Account to Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-amazon-s3", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account on Pantheon with Amazon S3" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-datadog", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account on Pantheon with Datadog" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-new-relic", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account with New Relic" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-sftp", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account on Pantheon with Your SFTP" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-splunk", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account on Pantheon with Splunk" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-syslog", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Integrate Your Fastly Account on Pantheon with Syslog" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/fastly-pantheon/fastly-faq", + "guide_directory": "guides/fastly-pantheon" + }, + "frontmatter": { + "title": "Fastly on Pantheon", + "subtitle": "Fastly on Pantheon FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/batch-files", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Batch Files" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/large-files", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Large Files and Highly Populated Directories" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/files-directories", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Files and Directories" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/tmp", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Temporary File Management" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/filesystem/troubleshooting", + "guide_directory": "guides/filesystem" + }, + "frontmatter": { + "title": "Pantheon Filesystem", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/metrics", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Performance Metrics" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/diagnostics", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Diagnostic Tools" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/caching", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Caching" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/media", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Images and Media" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/code-css", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Code and CSS" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/queries", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Queries and Databases" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/static", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Static Sites and Pages" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/redirects", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Redirects" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/frontend-performance/additional-resources", + "guide_directory": "guides/frontend-performance" + }, + "frontmatter": { + "title": "Frontend Performance", + "subtitle": "Additional Resources" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/signup", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Sign Up" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/team", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Set Up Your Team" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/addsite", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Add a Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/purchase", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Purchase" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/launch", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Launch Your Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/getstarted/nextsteps", + "guide_directory": "guides/getstarted" + }, + "frontmatter": { + "title": "Get Started with Pantheon", + "subtitle": "Next Steps" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/git-config", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Install and Configure Git" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/collaborative-development", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Collaborative Development with an External Repository" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/useful-commands", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Useful Git Commands" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/undo-commits", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Undo Git Commits" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/resolve-merge-conflicts", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Resolve Merge Conflicts" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/faq-git", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "FAQs" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/git/troubleshooting", + "guide_directory": "guides/git" + }, + "frontmatter": { + "title": "Git on Pantheon Guide", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn/experience-protection", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Confirm Experience Protection" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn/global-cdn-caching", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Configure and Verify Edge Caching" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn/test-global-cdn-caching", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Test Global CDN Caching" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn/https", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Configure DNS and Provision HTTPS" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/global-cdn/global-cdn-faq", + "guide_directory": "guides/global-cdn" + }, + "frontmatter": { + "title": "Pantheon Global CDN", + "subtitle": "Global CDN FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/dependencies", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Add or Remove Individual Site Dependencies" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/private-repo-package", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Add a Package from a Private Repository" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/one-click-updates", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Apply One-click Updates" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/ic-upstreams", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Use Upstream with Integrated Composer" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/ic-support", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Integrated Composer Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/ic-troubleshooting", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Troubleshoot Integrated Composer" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/integrated-composer/ic-faq", + "guide_directory": "guides/integrated-composer" + }, + "frontmatter": { + "title": "Integrated Composer", + "subtitle": "Integrated Composer FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/create-site-launch", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Create Your Site on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/plans/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Select Your Site Plan" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/domains/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Connect a Domain Name" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/advanced-curls/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Advanced cURLs for Site Migration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/configure-dns/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Configure DNS and Provision HTTPS" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/redirects", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Set a Primary Domain for SEO" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/launch-check/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Pre-launch Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/launch/next-steps/", + "guide_directory": "guides/launch" + }, + "frontmatter": { + "title": "Launch Essentials", + "subtitle": "Final Review" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/configuration", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Local Development Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/lando-wordpress", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Install and Configure Lando for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/ddev", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Install and Configure DDEV for Drupal" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/wordpress-phpstorm", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Configure PhpStorm for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/drupal-phpstorm", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Configure PhpStorm for Drupal" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/visual-studio-code", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Configuring Visual Studio Code for Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/graphql-requests", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "GraphQL Requests" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/cygwin-windows", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Install Cygwin on Windows" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/continuous-integration", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Continuous Integration Solutions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/local-development/jenkins", + "guide_directory": "guides/local-development" + }, + "frontmatter": { + "title": "Local Development on Pantheon", + "subtitle": "Automatically Test and Deploy to Pantheon with Jenkins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/logs-pantheon", + "guide_directory": "guides/logs-pantheon" + }, + "frontmatter": { + "title": "Log Files on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/logs-pantheon/access-logs", + "guide_directory": "guides/logs-pantheon" + }, + "frontmatter": { + "title": "Log Files on Pantheon", + "subtitle": "Access Logs with SFTP" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/logs-pantheon/automate-log-downloads", + "guide_directory": "guides/logs-pantheon" + }, + "frontmatter": { + "title": "Log Files on Pantheon", + "subtitle": "Automate Log Downloads" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/logs-pantheon/nginx-access-logs", + "guide_directory": "guides/logs-pantheon" + }, + "frontmatter": { + "title": "Log Files on Pantheon", + "subtitle": "Parse Nginx Access Logs with GoAccess" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/logs-pantheon/faq-logs", + "guide_directory": "guides/logs-pantheon" + }, + "frontmatter": { + "title": "Log Files on Pantheon", + "subtitle": "Frequently Asked Questions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/mysql-access", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Access MariaDB and MySQL Databases" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/mysql-workbench", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Use MySQL Workbench to Access a Database" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/database-workflow-tool", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Database Workflow Tool" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/myisam-to-innodb", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Convert MySQL Tables from MyISAM to InnoDB" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/kill-mysql-queries", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Identify and Kill Queries with MySQL Command-Line Tool" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/mysql-slow-log", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "MySQL Slow Log" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/database-connection-errors", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "Database Connection Errors" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/mariadb-mysql/mariadb-mysql-faq", + "guide_directory": "guides/mariadb-mysql" + }, + "frontmatter": { + "title": "MariaDB and MySQL on Pantheon", + "subtitle": "MariaDB and MySQL FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/acquia", + "guide_directory": "guides/migrate/acquia" + }, + "frontmatter": { + "title": "Migrate a Site From Acquia to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/acquia/prepare", + "guide_directory": "guides/migrate/acquia" + }, + "frontmatter": { + "title": "Migrate a Site From Acquia to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/acquia/migrate", + "guide_directory": "guides/migrate/acquia" + }, + "frontmatter": { + "title": "Migrate a Site From Acquia to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/acquia/troubleshooting", + "guide_directory": "guides/migrate/acquia" + }, + "frontmatter": { + "title": "Migrate a Site From Acquia to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/acquia/faq", + "guide_directory": "guides/migrate/acquia" + }, + "frontmatter": { + "title": "Migrate a Site From Acquia to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/guided", + "guide_directory": "guides/migrate/guided" + }, + "frontmatter": { + "title": "Migrate Sites to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/guided/prepare", + "guide_directory": "guides/migrate/guided" + }, + "frontmatter": { + "title": "Migrate Sites to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/guided/migrate", + "guide_directory": "guides/migrate/guided" + }, + "frontmatter": { + "title": "Migrate Sites to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/guided/troubleshooting", + "guide_directory": "guides/migrate/guided" + }, + "frontmatter": { + "title": "Migrate Sites to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/guided/faq", + "guide_directory": "guides/migrate/guided" + }, + "frontmatter": { + "title": "Migrate Sites to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/kinsta", + "guide_directory": "guides/migrate/kinsta" + }, + "frontmatter": { + "title": "Migrate a Site From Kinsta to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/kinsta/prepare", + "guide_directory": "guides/migrate/kinsta" + }, + "frontmatter": { + "title": "Migrate a Site From Kinsta to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/kinsta/migrate", + "guide_directory": "guides/migrate/kinsta" + }, + "frontmatter": { + "title": "Migrate a Site From Kinsta to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/kinsta/troubleshooting", + "guide_directory": "guides/migrate/kinsta" + }, + "frontmatter": { + "title": "Migrate a Site From Kinsta to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/kinsta/faq", + "guide_directory": "guides/migrate/kinsta" + }, + "frontmatter": { + "title": "Migrate a Site From Kinsta to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Migrate a Composer-Managed Drupal Site from Another Platform", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/prepare", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/contrib-custom", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Add Contrib and Custom Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/deploy-dev", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Deploy to Dev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/database", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Add Your Database" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/files", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Upload Your Files" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/deploy-live", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Deploy" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/manual-d8-composer-to-d8/troubleshooting", + "guide_directory": "guides/migrate/manual-d8-composer-to-d8" + }, + "frontmatter": { + "title": "Update a Drupal Site That Is Managed With Composer From Another Platform", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagely", + "guide_directory": "guides/migrate/pagely" + }, + "frontmatter": { + "title": "Migrate a Site From Pagely to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagely/prepare", + "guide_directory": "guides/migrate/pagely" + }, + "frontmatter": { + "title": "Migrate a Site From Pagely to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagely/migrate", + "guide_directory": "guides/migrate/pagely" + }, + "frontmatter": { + "title": "Migrate a Site From Pagely to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagely/troubleshooting", + "guide_directory": "guides/migrate/pagely" + }, + "frontmatter": { + "title": "Migrate a Site From Pagely to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagely/faq", + "guide_directory": "guides/migrate/pagely" + }, + "frontmatter": { + "title": "Migrate a Site From Pagely to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platformsh", + "guide_directory": "guides/migrate/platformsh" + }, + "frontmatter": { + "title": "Migrate a Site From Platform.sh to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platformsh/prepare", + "guide_directory": "guides/migrate/platformsh" + }, + "frontmatter": { + "title": "Migrate a Site From Platform.sh to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platformsh/migrate", + "guide_directory": "guides/migrate/platformsh" + }, + "frontmatter": { + "title": "Migrate a Site From Platform.sh to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platformsh/troubleshooting", + "guide_directory": "guides/migrate/platformsh" + }, + "frontmatter": { + "title": "Migrate a Site From Platform.sh to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platformsh/faq", + "guide_directory": "guides/migrate/platformsh" + }, + "frontmatter": { + "title": "Migrate a Site From Platform.sh to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpressvip", + "guide_directory": "guides/migrate/wordpressvip" + }, + "frontmatter": { + "title": "Migrate a Site From WordPress VIP to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpressvip/prepare", + "guide_directory": "guides/migrate/wordpressvip" + }, + "frontmatter": { + "title": "Migrate a Site From WordPress VIP to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpressvip/migrate", + "guide_directory": "guides/migrate/wordpressvip" + }, + "frontmatter": { + "title": "Migrate a Site From WordPress VIP to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpressvip/troubleshooting", + "guide_directory": "guides/migrate/wordpressvip" + }, + "frontmatter": { + "title": "Migrate a Site From WordPress VIP to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpressvip/faq", + "guide_directory": "guides/migrate/wordpressvip" + }, + "frontmatter": { + "title": "Migrate a Site From WordPress VIP to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wpengine", + "guide_directory": "guides/migrate/wpengine" + }, + "frontmatter": { + "title": "Migrate a Site From WP Engine to Pantheon Using Guided Migration", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wpengine/prepare", + "guide_directory": "guides/migrate/wpengine" + }, + "frontmatter": { + "title": "Migrate a Site From WP Engine to Pantheon Using Guided Migration", + "subtitle": "Prepare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wpengine/migrate", + "guide_directory": "guides/migrate/wpengine" + }, + "frontmatter": { + "title": "Migrate a Site From WP Engine to Pantheon Using Guided Migration", + "subtitle": "Migrate" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wpengine/troubleshooting", + "guide_directory": "guides/migrate/wpengine" + }, + "frontmatter": { + "title": "Migrate a Site From WP Engine to Pantheon Using Guided Migration", + "subtitle": "Troubleshooting" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wpengine/faq", + "guide_directory": "guides/migrate/wpengine" + }, + "frontmatter": { + "title": "Migrate a Site From WP Engine to Pantheon Using Guided Migration", + "subtitle": "FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/create-multidev", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Create a Multidev Environment" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/access-branch", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Access a Multidev Branch Environment" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/clone-content", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Clone Content in Your Multidev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/edit-multidev", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Make Edits and Merge Code in Your Multidev" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/compare-environments", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Compare Multidev Environments" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/delete-multidev", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Delete Branch Environments and Branches" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multidev/multidev-faq", + "guide_directory": "guides/multidev" + }, + "frontmatter": { + "title": "Multidev", + "subtitle": "Multidev FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/considerations/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Considerations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/config/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Configure" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/multisite-governance/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Multisite Governance" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/workflows/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Workflows" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/search-replace/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Search and Replace" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/multisite/debug/", + "guide_directory": "guides/multisite" + }, + "frontmatter": { + "title": "WordPress Multisite", + "subtitle": "Troubleshoot" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/activate-new-relic", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "Activate New Relic" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/monitor-new-relic", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "Monitor and Improve Site Performance" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/new-relic-quicksilver", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "New Relic Labeling with Quicksilver" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/debug-mysql-new-relic", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "MySQL Troubleshooting with New Relic" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/troubleshoot-new-relic", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "Troubleshoot New Relic" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/new-relic/new-relic-faq", + "guide_directory": "guides/new-relic" + }, + "frontmatter": { + "title": "New Relic Performance Monitoring on Pantheon", + "subtitle": "New Relic FAQ" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/monitor/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "New Relic Ping Monitors" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/schedule/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "PagerDuty Schedule" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/notify/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "Notifications" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/slack/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "Slack Integrations (optional)" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/pagerduty/next-steps/", + "guide_directory": "guides/pagerduty" + }, + "frontmatter": { + "title": "Incident Management", + "subtitle": "Next Steps" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/php-versions", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "Upgrade PHP Versions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/settings-php", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "Configure Your Drupal Settings.php File" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/wp-config-php", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "Configure Your wp-config.php File" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/wordpress-sessions", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "WordPress and PHP Sessions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/php-errors", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "PHP Errors and Exceptions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/php-slow-log", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "PHP Slow Log and FPM Error Log" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/php/deprecated-constructor-notices", + "guide_directory": "guides/php" + }, + "frontmatter": { + "title": "PHP on Pantheon", + "subtitle": "Debug Intermittent PHP 7 Notices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations/platform-site-info", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "Platform and Site Information" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations/platform-security", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "Platform Security" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations/media-email-support", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "Media and Email" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations/php-platform", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "PHP Platform Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/platform-considerations/terminus-platform", + "guide_directory": "guides/platform-considerations" + }, + "frontmatter": { + "title": "Platform Considerations", + "subtitle": "Terminus Platform Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services/website-migration-service", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Managed Migration Service" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services/onboarding", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Onboarding Services" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services/application-performance", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Application Performance and Architecture" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services/advanced-global-cdn", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Advanced Global CDN" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/professional-services/managed-updates", + "guide_directory": "guides/professional-services" + }, + "frontmatter": { + "title": "Pantheon Professional Services", + "subtitle": "Managed Updates" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/install-script", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Install Scripts" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/hooks", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Quicksilver Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/variables", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Quicksilver Variables" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/asana", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Integrate Asana with Pantheon using Quicksilver Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/jira", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Integrate Jira on Pantheon with Quicksilver Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/trello", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Integrate Trello on Pantheon with Quicksilver Hooks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/quicksilver/troubleshoot-quicksilver", + "guide_directory": "guides/quicksilver" + }, + "frontmatter": { + "title": "Quicksilver on Pantheon", + "subtitle": "Troubleshoot" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect/https/", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Redirect to HTTPS" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect/primary-domain", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Set the Primary Domain" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect/php", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Redirect with PHP" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect/advanced", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Advanced Redirects and Restrictions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/redirect/mobile", + "guide_directory": "guides/redirect" + }, + "frontmatter": { + "title": "Redirects Guide", + "subtitle": "Mobile Redirection with Cloudflare" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/secure-integration", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Pantheon Secure Integration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/security-tool", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Lock Environments with the Dashboard Security Tool" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/private-paths", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Private Paths for Files and Code" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/two-factor-authentication", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Secure Your Site with Two-Factor Authentication" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/ssh-tunnels", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Secure Connections to Pantheon Services via TLS or SSH Tunnels" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/secure-runtime-access", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Secure Runtime Access" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/secure-development/phpinfo", + "guide_directory": "guides/secure-development" + }, + "frontmatter": { + "title": "Secure Development on Pantheon", + "subtitle": "Securely Working with phpinfo" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/sftp-connection-info", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "SFTP Access and Authentication" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/sftp-development", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Commit or Discard SFTP Changes" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/rsync-and-sftp", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Large File Transfers with rsync and SFTP" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/vscode-sftp", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Visual Studio Code SFTP Extension" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/winscp", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Use WinSCP on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/port-2222", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Blocked Port 2222 Workaround" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sftp/troubleshooting-sftp", + "guide_directory": "guides/sftp" + }, + "frontmatter": { + "title": "SFTP on Pantheon", + "subtitle": "Troubleshooting SFTP" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/solr-drupal", + "guide_directory": "guides/solr-drupal" + }, + "frontmatter": { + "title": "Pantheon Solr Search for Drupal", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/solr-drupal/solr-drupal", + "guide_directory": "guides/solr-drupal" + }, + "frontmatter": { + "title": "Apache Solr for Drupal", + "subtitle": "Using Solr 8 on the Latest Version of Drupal" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/solr-drupal/solr-drupal-7", + "guide_directory": "guides/solr-drupal" + }, + "frontmatter": { + "title": "Apache Solr for Drupal", + "subtitle": "Using Solr on Drupal 7" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sso", + "guide_directory": "guides/sso" + }, + "frontmatter": { + "title": "Single Sign-on with Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sso/sso", + "guide_directory": "guides/sso" + }, + "frontmatter": { + "title": "Single Sign-on with Pantheon", + "subtitle": "SSO and Identity Federation on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sso/sso-organizations", + "guide_directory": "guides/sso" + }, + "frontmatter": { + "title": "Single Sign-on with Pantheon", + "subtitle": "SSO for Pantheon Organizations" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/sso/shibboleth-sso", + "guide_directory": "guides/sso" + }, + "frontmatter": { + "title": "Single Sign-on with Pantheon", + "subtitle": "Use SimpleSAMLphp with Shibboleth SSO" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Scope of Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/contact-support/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Contact Support" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/support-ticket/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Support Ticket Best Practices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/early-access/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Early Access Program" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/har/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Generate a HAR" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/curl", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Copy cURL Data" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/support/faq/", + "guide_directory": "guides/support" + }, + "frontmatter": { + "title": "Get Support", + "subtitle": "Frequently Asked Questions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/store-setup/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Store Setup" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/configure/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Configure" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/commit/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Commit Changes" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/initialize-prod/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Initialize Production" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/develop/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Continue Development" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/woocommerce/launch/", + "guide_directory": "guides/woocommerce" + }, + "frontmatter": { + "title": "WooCommerce Quick Start", + "subtitle": "Launch Your Store" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-composer", + "guide_directory": "guides/wordpress-composer" + }, + "frontmatter": { + "title": "WordPress with Composer on Pantheon", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-composer/wordpress-composer-managed", + "guide_directory": "guides/wordpress-composer" + }, + "frontmatter": { + "title": "WordPress with Composer on Pantheon", + "subtitle": "Create a Composer-managed WordPress Site with Bedrock" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-composer/create-wp-site-composer-ci-auto-test", + "guide_directory": "guides/wordpress-composer" + }, + "frontmatter": { + "title": "WordPress with Composer on Pantheon", + "subtitle": "Create a Composer-managed WordPress Site with Terminus Build Tools" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-composer/wordpress-ic", + "guide_directory": "guides/wordpress-composer" + }, + "frontmatter": { + "title": "WordPress with Composer on Pantheon", + "subtitle": "Create a Composer-managed WordPress Site with Integrated Composer" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/plugins", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Pantheon-maintained WordPress Plugins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/mu-plugin", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Create a WordPress MU-Plugin for Actions and Filters" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/wp-cfm", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "WordPress Configuration Management (WP-CFM)" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/wordpress-cache-plugin", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Pantheon WordPress Cache Plugin Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/wordpress-custom-code", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Manage Custom Code for WordPress with Plugins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/wordpress-font-library", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Using the WordPress Font Library on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-configurations/sendgrid-wordpress-wp-mail-smtp", + "guide_directory": "guides/wordpress-configurations" + }, + "frontmatter": { + "title": "WordPress Configurations Guide", + "subtitle": "Use WP Mail SMTP to Send Email with SendGrid" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-best-practices", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "WordPress Best Practices" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-development-versions", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Test WordPress Core Development Versions" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/xml-rpc-attacks", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Avoid XML-RPC Attacks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-login-attacks", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Avoid WordPress Login Attacks" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-cron", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Cron for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-s3", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "AWS S3 Setup for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-gcs", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Google Cloud Storage Setup for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-broken-links", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Fix Broken Links in WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-solr", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Enable Solr for WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/wordpress-secrets-management", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Secrets Management in WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-developer/performant-translations", + "guide_directory": "guides/wordpress-developer" + }, + "frontmatter": { + "title": "WordPress Developer's Guide", + "subtitle": "Performant Translations on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Add Git-Based Version Control to Your SFTP Workflow" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/plugins/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Install Plugins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/themes/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Manage Themes" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/media/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Upload Media" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/remove-editor/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Edit Site Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-git/next-steps/", + "guide_directory": "guides/wordpress-git" + }, + "frontmatter": { + "title": "Using Git with SFTP & WordPress", + "subtitle": "Next Steps" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/install/", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Install WP SAML Auth" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/saml-app/", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Create a SAML App" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/access-and-mappings", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Access Permissions and Mappings" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/going-live", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Going Live" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-google-sso/advanced-configuration", + "guide_directory": "guides/wordpress-google-sso" + }, + "frontmatter": { + "title": "Using WP SAML Auth with Google Apps", + "subtitle": "Advanced Configuration" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Introduction to WordPress on Pantheon" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/create-wp-site", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Create a New WordPress Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/migrate-existing-wp-site", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Migrate an Existing WordPress Site" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/wordpress-launch-check", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Launch Check - WordPress Performance and Configuration Analysis" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/plugins-recommended", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Recommended WordPress Plugins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/plugins", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Pantheon WordPress Plugins" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/wp-optimization", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Pantheon Performance and Optimization Features" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/wordpress-developers", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "WordPress on Pantheon for Developers" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/wp-security", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "WordPress Security" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/wp-content-management", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "WordPress Content Management" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wordpress-pantheon/troubleshooting", + "guide_directory": "guides/wordpress-pantheon" + }, + "frontmatter": { + "title": "WordPress on Pantheon Quick Start Guide", + "subtitle": "Troubleshooting WordPress" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "Introduction" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/create-wp-site", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "Create a WordPress Site with Terminus and WP-CLI" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli/wp-cli-global-parameters", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "WP-CLI Global Parameters" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli/install-wp-plugins-themes", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "Install Plugins and Themes with WP-CLI" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli/wp-cli-sql-php-subcommands", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "SQL Queries, PHP Code, and Subcommands with WP-CLI" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli/wp-cli-pantheon-commands", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "Pantheon Commands for WP-CLI" + } + } + }, + { + "node": { + "fields": { + "slug": "/guides/wp-cli/wp-cli-troubleshoot", + "guide_directory": "guides/wp-cli" + }, + "frontmatter": { + "title": "WP-CLI on the Pantheon Platform", + "subtitle": "Troubleshoot WP-CLI" + } + } + } + ] + } +} + +export default AllGuides diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 239f54799a..957ae5b062 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -14,7 +14,6 @@ const getAllGuidePages = () => { ) { edges { node { - id fields { slug guide_directory diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index a2f7ecab24..df40145907 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,5 +1,7 @@ - +// Searches through the top level items find the subdata structure that +// matches the parent path requested. +// todo, rename "maximumParent" to something better. const findSubMenuItemsToUse = function (maximumParent, NestedItems) { for (let item of NestedItems) { if (item.link === maximumParent) { diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index ad3898c724..1248bcd08a 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -17,15 +17,8 @@ const sampleItems = [ ] test('finds sub menu to use', () => { - const maximumParent = 'test' - expect(findSubMenuItemsToUse(maximumParent, sampleItems)).toEqual({ link: 'test' }) + const parentPath = 'test' + expect(findSubMenuItemsToUse(parentPath, sampleItems)).toEqual({ link: 'test' }) expect(sum(1, 2)).toBe(3) }) - -// test('finds sub menu items to use', () => { -// // const maximumParent = 'test' -// // const NestedItems = [{link: 'test'}] -// // expect(findSubMenuItemsToUse(maximumParent, NestedItems)).toEqual({link: 'test'}) -// } - diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 14fc2fe21e..b1dca48d48 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -3,15 +3,7 @@ import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; import getOmniSidebarActiveSection from './getOmniSidebarActiveSection.js'; import Navbar from '../navbar'; import getOmniItems from './getOmniItems'; - -function findSubMenuItemsToUse(maximumParent, NestedItems) { - for (let item of NestedItems) { - if (item.link === maximumParent) { - return item; - } - } - return undefined; -} +import { findSubMenuItemsToUse } from './helpers.js'; const OmniSidebarNav = ({ activePage, From e20af5d6db39f2dd6a47758d692fc52179b82aef Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 21:49:29 -0500 Subject: [PATCH 080/259] query in its own file --- .../omniSidebarNav/allGuidesQuery.js | 36 +++++++++++ .../omniSidebarNav/getGuideDirectory.js | 63 ++++++++++--------- 2 files changed, 68 insertions(+), 31 deletions(-) create mode 100644 src/components/omniSidebarNav/allGuidesQuery.js diff --git a/src/components/omniSidebarNav/allGuidesQuery.js b/src/components/omniSidebarNav/allGuidesQuery.js new file mode 100644 index 0000000000..31c599e49d --- /dev/null +++ b/src/components/omniSidebarNav/allGuidesQuery.js @@ -0,0 +1,36 @@ +import { useStaticQuery, graphql } from 'gatsby'; + +const allGuides = () => { + const AllTheGuides = useStaticQuery( + graphql` + { + allGuides: allMdx( + filter: { + fileAbsolutePath: { ne: null } + fields: { guide_directory: { ne: null } } + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: ASC } + ) { + edges { + node { + fields { + slug + guide_directory + } + frontmatter { + title + subtitle + } + } + } + } + } + `, + ); + + return AllTheGuides; +}; + + +export default allGuides; diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js index 957ae5b062..829e999fca 100644 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ b/src/components/omniSidebarNav/getGuideDirectory.js @@ -1,36 +1,37 @@ import { useStaticQuery, graphql } from 'gatsby'; +import allGuides from './allGuidesQuery'; -const getAllGuidePages = () => { - const AllTheGuides = useStaticQuery( - graphql` - { - allGuides: allMdx( - filter: { - fileAbsolutePath: { ne: null } - fields: { guide_directory: { ne: null } } - frontmatter: { draft: { ne: true } } - } - sort: { fields: [fileAbsolutePath], order: ASC } - ) { - edges { - node { - fields { - slug - guide_directory - } - frontmatter { - title - subtitle - } - } - } - } - } - `, - ); +// const getAllGuidePages = () => { +// const AllTheGuides = useStaticQuery( +// graphql` +// { +// allGuides: allMdx( +// filter: { +// fileAbsolutePath: { ne: null } +// fields: { guide_directory: { ne: null } } +// frontmatter: { draft: { ne: true } } +// } +// sort: { fields: [fileAbsolutePath], order: ASC } +// ) { +// edges { +// node { +// fields { +// slug +// guide_directory +// } +// frontmatter { +// title +// subtitle +// } +// } +// } +// } +// } +// `, +// ); - return AllTheGuides; -}; +// return AllTheGuides; +// }; function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { const ChildItems = []; @@ -54,7 +55,7 @@ function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { } const getGuideDirectory = (guideDirectory) => { - const AllGuides = getAllGuidePages(); + const AllGuides = allGuides(); return { link: '/' + guideDirectory, title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), From 6c641d574acb1135bc245819c14d16b441fbc3f9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jul 2024 22:09:53 -0500 Subject: [PATCH 081/259] more unit testing --- .../omniSidebarNav/allGuides.testfixture.js | 2 +- .../omniSidebarNav/getGuideDirectory.js | 69 ------------------- src/components/omniSidebarNav/getOmniItems.js | 2 +- src/components/omniSidebarNav/helpers.js | 44 +++++++++++- src/components/omniSidebarNav/helpers.test.js | 11 ++- 5 files changed, 55 insertions(+), 73 deletions(-) delete mode 100644 src/components/omniSidebarNav/getGuideDirectory.js diff --git a/src/components/omniSidebarNav/allGuides.testfixture.js b/src/components/omniSidebarNav/allGuides.testfixture.js index e97c406fc4..df8a46127d 100644 --- a/src/components/omniSidebarNav/allGuides.testfixture.js +++ b/src/components/omniSidebarNav/allGuides.testfixture.js @@ -6163,4 +6163,4 @@ const AllGuides = { } } -export default AllGuides +export default AllGuides; diff --git a/src/components/omniSidebarNav/getGuideDirectory.js b/src/components/omniSidebarNav/getGuideDirectory.js deleted file mode 100644 index 829e999fca..0000000000 --- a/src/components/omniSidebarNav/getGuideDirectory.js +++ /dev/null @@ -1,69 +0,0 @@ -import { useStaticQuery, graphql } from 'gatsby'; -import allGuides from './allGuidesQuery'; - -// const getAllGuidePages = () => { -// const AllTheGuides = useStaticQuery( -// graphql` -// { -// allGuides: allMdx( -// filter: { -// fileAbsolutePath: { ne: null } -// fields: { guide_directory: { ne: null } } -// frontmatter: { draft: { ne: true } } -// } -// sort: { fields: [fileAbsolutePath], order: ASC } -// ) { -// edges { -// node { -// fields { -// slug -// guide_directory -// } -// frontmatter { -// title -// subtitle -// } -// } -// } -// } -// } -// `, -// ); - -// return AllTheGuides; -// }; - -function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { - const ChildItems = []; - for (let item of AllTheGuides) { - if (item.node.fields.guide_directory === guideDirectory) { - ChildItems.push({ - link: item.node.fields.slug, - title: item.node.frontmatter.subtitle, - }); - } - } - return ChildItems; -} - -function getTitleForGuideDirectory(AllTheGuides, guideDirectory) { - for (let item of AllTheGuides) { - if (item.node.fields.slug === '/' + guideDirectory) { - return item.node.frontmatter.title; - } - } -} - -const getGuideDirectory = (guideDirectory) => { - const AllGuides = allGuides(); - return { - link: '/' + guideDirectory, - title: getTitleForGuideDirectory(AllGuides.allGuides.edges, guideDirectory), - children: getChildrenForGuideDirectory( - AllGuides.allGuides.edges, - guideDirectory, - ), - }; -}; - -export default getGuideDirectory; diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 5ea4595e2c..b29f7140b6 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,5 +1,5 @@ import CertificationItems from './submenus/certification'; -import getGuideDirectory from './getGuideDirectory'; +import { getGuideDirectory } from './helpers'; const getOmniItems = () => { const OmniItems = [ diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index df40145907..d10120a43d 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,4 +1,6 @@ +import allGuides from './allGuidesQuery'; + // Searches through the top level items find the subdata structure that // matches the parent path requested. // todo, rename "maximumParent" to something better. @@ -11,4 +13,44 @@ const findSubMenuItemsToUse = function (maximumParent, NestedItems) { return undefined; } -export {findSubMenuItemsToUse }; +function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { + const ChildItems = []; + for (let item of AllTheGuides) { + if (item.node.fields.guide_directory === guideDirectory) { + ChildItems.push({ + link: item.node.fields.slug, + title: item.node.frontmatter.subtitle, + }); + } + } + return ChildItems; +} + + +// @todo, flip these arguments right. +const getTitleForGuideDirectory = function (guideDirectory, AllTheGuides) { + for (let item of AllTheGuides) { + if (item.node.fields.slug === '/' + guideDirectory) { + return item.node.frontmatter.title; + } + } +} + +// return an item list for a guide directory. +// guideDirectory is the directory name of the guide. +// AllGuides is the result of the allGuides query. +// For testing purposes, AllGuides can be directly set with the fixture +// allGuides.testfixtures.js +const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { + return { + link: '/' + guideDirectory, + title: getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges), + children: getChildrenForGuideDirectory( + AllGuides.allGuides.edges, + guideDirectory, + ), + }; +}; + + +export { findSubMenuItemsToUse, getGuideDirectory, getTitleForGuideDirectory }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 1248bcd08a..fb56c14bd4 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,6 +1,7 @@ import { expect, test } from 'vitest' import { sum } from './sum' -import { findSubMenuItemsToUse } from './helpers' +import { findSubMenuItemsToUse, getTitleForGuideDirectory } from './helpers' +import AllGuides from './allGuides.testfixture' test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3) @@ -22,3 +23,11 @@ test('finds sub menu to use', () => { expect(sum(1, 2)).toBe(3) }) + +test('Find the guide title by directory', () => { + const guideDirectory = "guides/account-mgmt/account"; + + + expect(getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges)).toEqual("Manage Your Account") + //expect(sum(1, 2)).toBe(3) +}) From e7a627088bcd627deb627e86312e61fb6c809c35 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 22:55:46 -0500 Subject: [PATCH 082/259] one more unit test --- .../getOmniSidebarActiveSection.js | 3 ++ src/components/omniSidebarNav/helpers.js | 5 ++-- src/components/omniSidebarNav/helpers.test.js | 17 ++++++----- .../testfixtures/guideDirectoryItems.js | 29 +++++++++++++++++++ 4 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js index 760ae89dd2..5a52ae4a64 100644 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js @@ -1,5 +1,8 @@ import getOmniItems from './getOmniItems'; +// @todo, move the functions below to a helper file. + + function findParentWithActiveLink(NestedItems, activePage) { // This function will return the top-level array of items that contains the active page // no matter how deeply nested it is. diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index d10120a43d..08550d8f37 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -26,8 +26,7 @@ function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { return ChildItems; } - -// @todo, flip these arguments right. +// Find the title of a guide directory by the directory name. const getTitleForGuideDirectory = function (guideDirectory, AllTheGuides) { for (let item of AllTheGuides) { if (item.node.fields.slug === '/' + guideDirectory) { @@ -42,7 +41,7 @@ const getTitleForGuideDirectory = function (guideDirectory, AllTheGuides) { // For testing purposes, AllGuides can be directly set with the fixture // allGuides.testfixtures.js const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { - return { + const returning = { link: '/' + guideDirectory, title: getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges), children: getChildrenForGuideDirectory( diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index fb56c14bd4..9337415a1c 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,7 +1,8 @@ -import { expect, test } from 'vitest' -import { sum } from './sum' -import { findSubMenuItemsToUse, getTitleForGuideDirectory } from './helpers' -import AllGuides from './allGuides.testfixture' +import { expect, test } from 'vitest'; +import { sum } from './sum'; +import { findSubMenuItemsToUse, getTitleForGuideDirectory, getGuideDirectory } from './helpers'; +import AllGuides from './allGuides.testfixture'; +import guideDirectoryItems from './testfixtures/guideDirectoryItems'; test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3) @@ -26,8 +27,10 @@ test('finds sub menu to use', () => { test('Find the guide title by directory', () => { const guideDirectory = "guides/account-mgmt/account"; - - expect(getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges)).toEqual("Manage Your Account") - //expect(sum(1, 2)).toBe(3) +}) + +test('Check that the items for a specific guide directory path are correct', () => { + const guideDirectory = "guides/decoupled/wp-backend-starters"; + expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual(guideDirectoryItems) }) diff --git a/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js b/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js new file mode 100644 index 0000000000..91077215d6 --- /dev/null +++ b/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js @@ -0,0 +1,29 @@ +const guideDirectoryItems = { + "link": "/guides/decoupled/wp-backend-starters", + "title": "WordPress Backend Starter for Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-backend-starters", + "title": "Introduction" + }, + { + "link": "/guides/decoupled/wp-backend-starters/create", + "title": "Create a New Project" + }, + { + "link": "/guides/decoupled/wp-backend-starters/caching", + "title": "Caching Recommendations" + }, + { + "link": "/guides/decoupled/wp-backend-starters/manage-settings", + "title": "Manage Settings" + }, + { + "link": "/guides/decoupled/wp-backend-starters/build-hooks", + "title": "Build Hooks" + } + ] +}; + +export default guideDirectoryItems; + From 676ec4aceaf76b15dbd1d9ee4e7310f706bad5ca Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 22:56:40 -0500 Subject: [PATCH 083/259] fix --- src/components/omniSidebarNav/helpers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 08550d8f37..4bec472894 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -41,7 +41,7 @@ const getTitleForGuideDirectory = function (guideDirectory, AllTheGuides) { // For testing purposes, AllGuides can be directly set with the fixture // allGuides.testfixtures.js const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { - const returning = { + return { link: '/' + guideDirectory, title: getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges), children: getChildrenForGuideDirectory( From eb4053c5fea253967167f4b65111c3e354314fe9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:10:53 -0500 Subject: [PATCH 084/259] removing helper functions that were too small --- src/components/omniSidebarNav/helpers.js | 37 +++++++------------ src/components/omniSidebarNav/helpers.test.js | 30 +++++---------- 2 files changed, 23 insertions(+), 44 deletions(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 4bec472894..d9fc2b91da 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -13,43 +13,32 @@ const findSubMenuItemsToUse = function (maximumParent, NestedItems) { return undefined; } -function getChildrenForGuideDirectory(AllTheGuides, guideDirectory) { +// return an item list for a guide directory. +// guideDirectory is the directory name of the guide. +// AllGuides is the result of the allGuides query. +// For testing purposes, AllGuides can be directly set with the fixture +// allGuides.testfixtures.js +const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { + const ChildItems = []; - for (let item of AllTheGuides) { + var guideTitle = ''; + for (let item of AllGuides.allGuides.edges) { if (item.node.fields.guide_directory === guideDirectory) { ChildItems.push({ link: item.node.fields.slug, title: item.node.frontmatter.subtitle, }); } - } - return ChildItems; -} - -// Find the title of a guide directory by the directory name. -const getTitleForGuideDirectory = function (guideDirectory, AllTheGuides) { - for (let item of AllTheGuides) { if (item.node.fields.slug === '/' + guideDirectory) { - return item.node.frontmatter.title; + guideTitle = item.node.frontmatter.title; } } -} -// return an item list for a guide directory. -// guideDirectory is the directory name of the guide. -// AllGuides is the result of the allGuides query. -// For testing purposes, AllGuides can be directly set with the fixture -// allGuides.testfixtures.js -const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { return { link: '/' + guideDirectory, - title: getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges), - children: getChildrenForGuideDirectory( - AllGuides.allGuides.edges, - guideDirectory, - ), + title: guideTitle, + children: ChildItems, }; }; - -export { findSubMenuItemsToUse, getGuideDirectory, getTitleForGuideDirectory }; +export { findSubMenuItemsToUse, getGuideDirectory }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 9337415a1c..14104afa83 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,35 +1,25 @@ import { expect, test } from 'vitest'; import { sum } from './sum'; -import { findSubMenuItemsToUse, getTitleForGuideDirectory, getGuideDirectory } from './helpers'; +import { findSubMenuItemsToUse, getGuideDirectory } from './helpers'; import AllGuides from './allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems'; -test('adds 1 + 2 to equal 3', () => { - expect(sum(1, 2)).toBe(3) - -}) +test('finds sub menu to use', () => { -const sampleItems = [ - { - link: 'test', - }, - { - link: 'test2', - }, -] + const sampleItems = [ + { + link: 'test', + }, + { + link: 'test2', + }, + ] -test('finds sub menu to use', () => { const parentPath = 'test' expect(findSubMenuItemsToUse(parentPath, sampleItems)).toEqual({ link: 'test' }) - expect(sum(1, 2)).toBe(3) }) -test('Find the guide title by directory', () => { - const guideDirectory = "guides/account-mgmt/account"; - expect(getTitleForGuideDirectory(guideDirectory, AllGuides.allGuides.edges)).toEqual("Manage Your Account") -}) - test('Check that the items for a specific guide directory path are correct', () => { const guideDirectory = "guides/decoupled/wp-backend-starters"; expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual(guideDirectoryItems) From 84fb491926a2e9243a976e3bbeac5a7ded658966 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:18:37 -0500 Subject: [PATCH 085/259] more moving helper functions --- .../getOmniSidebarActiveSection.js | 38 ----------------- src/components/omniSidebarNav/helpers.js | 41 ++++++++++++++++++- src/components/omniSidebarNav/index.js | 3 +- 3 files changed, 41 insertions(+), 41 deletions(-) delete mode 100644 src/components/omniSidebarNav/getOmniSidebarActiveSection.js diff --git a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js b/src/components/omniSidebarNav/getOmniSidebarActiveSection.js deleted file mode 100644 index 5a52ae4a64..0000000000 --- a/src/components/omniSidebarNav/getOmniSidebarActiveSection.js +++ /dev/null @@ -1,38 +0,0 @@ -import getOmniItems from './getOmniItems'; - -// @todo, move the functions below to a helper file. - - -function findParentWithActiveLink(NestedItems, activePage) { - // This function will return the top-level array of items that contains the active page - // no matter how deeply nested it is. - for (let item of NestedItems) { - if (containsActiveLink(item, activePage)) { - return item; - } - } -} - -function containsActiveLink(item, activePage) { - if (item.link === activePage) { - return true; - } else if (item.children && item.children.length > 0) { - for (let child of item.children) { - if (containsActiveLink(child, activePage)) { - return true; - } - } - } - return false; -} - -const getOmniSidebarActiveSection = ({ activePage }) => { - const OmniItems = getOmniItems(); - if (OmniItems) { - return [findParentWithActiveLink(OmniItems, activePage)]; - } else { - return undefined; - } -}; - -export default getOmniSidebarActiveSection; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index d9fc2b91da..45b17e09ff 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,5 +1,44 @@ import allGuides from './allGuidesQuery'; +import getOmniItems from './getOmniItems'; + + + +function findParentWithActiveLink(NestedItems, activePage) { + // This function will return the top-level array of items that contains the active page + // no matter how deeply nested it is. + for (let item of NestedItems) { + if (containsActiveLink(item, activePage)) { + return item; + } + } +} + +function containsActiveLink(item, activePage) { + if (item.link === activePage) { + return true; + } else if (item.children && item.children.length > 0) { + for (let child of item.children) { + if (containsActiveLink(child, activePage)) { + return true; + } + } + } + return false; +} + +const getOmniSidebarActiveSection = ({ activePage }) => { + const OmniItems = getOmniItems(); + if (OmniItems) { + return [findParentWithActiveLink(OmniItems, activePage)]; + } else { + return undefined; + } +}; + + + + // Searches through the top level items find the subdata structure that // matches the parent path requested. @@ -41,4 +80,4 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { }; }; -export { findSubMenuItemsToUse, getGuideDirectory }; +export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection }; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index b1dca48d48..01391d4f94 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,9 +1,8 @@ import React from 'react'; import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; -import getOmniSidebarActiveSection from './getOmniSidebarActiveSection.js'; import Navbar from '../navbar'; import getOmniItems from './getOmniItems'; -import { findSubMenuItemsToUse } from './helpers.js'; +import { findSubMenuItemsToUse, getOmniSidebarActiveSection } from './helpers.js'; const OmniSidebarNav = ({ activePage, From 7d99ac9af7314e5c7377e6da7ff2bd2db2e03f19 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:20:26 -0500 Subject: [PATCH 086/259] moving deck chairs --- src/components/omniSidebarNav/helpers.js | 2 +- src/components/omniSidebarNav/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 45b17e09ff..160feb8590 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -30,7 +30,7 @@ function containsActiveLink(item, activePage) { const getOmniSidebarActiveSection = ({ activePage }) => { const OmniItems = getOmniItems(); if (OmniItems) { - return [findParentWithActiveLink(OmniItems, activePage)]; + return findParentWithActiveLink(OmniItems, activePage); } else { return undefined; } diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 01391d4f94..9c10029367 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -10,7 +10,7 @@ const OmniSidebarNav = ({ fallbackTitle = '', submenuPathToUse = '', }) => { - const menuItems = getOmniSidebarActiveSection({ activePage }); + const menuItems = [getOmniSidebarActiveSection({ activePage })]; const OmniItems = getOmniItems(); // If the caller is asking for a specific submenu, use that directly. From 3cb3fb70f29c6071d6f049fc0a568fa68147d16a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:24:23 -0500 Subject: [PATCH 087/259] removing a too small function. And removing sample unit test --- src/components/omniSidebarNav/helpers.js | 27 +++++++---------------- src/components/omniSidebarNav/sum.js | 3 --- src/components/omniSidebarNav/sum.test.js | 7 ------ 3 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 src/components/omniSidebarNav/sum.js delete mode 100644 src/components/omniSidebarNav/sum.test.js diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 160feb8590..632eab5839 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -2,18 +2,6 @@ import allGuides from './allGuidesQuery'; import getOmniItems from './getOmniItems'; - - -function findParentWithActiveLink(NestedItems, activePage) { - // This function will return the top-level array of items that contains the active page - // no matter how deeply nested it is. - for (let item of NestedItems) { - if (containsActiveLink(item, activePage)) { - return item; - } - } -} - function containsActiveLink(item, activePage) { if (item.link === activePage) { return true; @@ -27,19 +15,20 @@ function containsActiveLink(item, activePage) { return false; } + +// @todo, add a test for this. const getOmniSidebarActiveSection = ({ activePage }) => { const OmniItems = getOmniItems(); if (OmniItems) { - return findParentWithActiveLink(OmniItems, activePage); - } else { - return undefined; + for (let item of OmniItems) { + if (containsActiveLink(item, activePage)) { + return item; + } + } } + return undefined; }; - - - - // Searches through the top level items find the subdata structure that // matches the parent path requested. // todo, rename "maximumParent" to something better. diff --git a/src/components/omniSidebarNav/sum.js b/src/components/omniSidebarNav/sum.js deleted file mode 100644 index 50a1ccdb59..0000000000 --- a/src/components/omniSidebarNav/sum.js +++ /dev/null @@ -1,3 +0,0 @@ -export function sum(a, b) { - return a + b -} diff --git a/src/components/omniSidebarNav/sum.test.js b/src/components/omniSidebarNav/sum.test.js deleted file mode 100644 index da4f214540..0000000000 --- a/src/components/omniSidebarNav/sum.test.js +++ /dev/null @@ -1,7 +0,0 @@ -import { expect, test } from 'vitest' -import { sum } from './sum' - -test('adds 1 + 2 to equal 3', () => { - expect(sum(1, 2)).toBe(3) - -}) From 53f28e5f4908826b33eb6d8242d822fbf8c6b2eb Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:46:30 -0500 Subject: [PATCH 088/259] deleting separate sidebarNav component --- src/components/omniSidebarNav/helpers.js | 18 +++++++++- src/components/omniSidebarNav/helpers.test.js | 1 - src/components/omniSidebarNav/index.js | 17 +++++----- src/components/sidebarNav/index.js | 33 ------------------- 4 files changed, 26 insertions(+), 43 deletions(-) delete mode 100644 src/components/sidebarNav/index.js diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 632eab5839..bbd029b156 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,6 +1,22 @@ import allGuides from './allGuidesQuery'; import getOmniItems from './getOmniItems'; +import React from "react" +import { Link } from "gatsby" + +function turnItemIntoLink(item, activePage) { + return { + isActive: item.link === activePage, + links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, + linkContent: React.createElement(Link, { to: item.link }, item.title) + } +} + +const turnItemsIntoLinks = (items, activePage) => { + return items.map((item) => { + return turnItemIntoLink(item, activePage); + }) +} function containsActiveLink(item, activePage) { if (item.link === activePage) { @@ -69,4 +85,4 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { }; }; -export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection }; +export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, turnItemsIntoLinks }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 14104afa83..22dc5aba29 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,5 +1,4 @@ import { expect, test } from 'vitest'; -import { sum } from './sum'; import { findSubMenuItemsToUse, getGuideDirectory } from './helpers'; import AllGuides from './allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems'; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 9c10029367..7e670f46d3 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,8 +1,8 @@ import React from 'react'; -import { SidebarNav, turnItemsIntoLinks } from '../sidebarNav'; import Navbar from '../navbar'; +import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" import getOmniItems from './getOmniItems'; -import { findSubMenuItemsToUse, getOmniSidebarActiveSection } from './helpers.js'; +import { findSubMenuItemsToUse, getOmniSidebarActiveSection, turnItemsIntoLinks } from './helpers.js'; const OmniSidebarNav = ({ activePage, @@ -18,19 +18,20 @@ const OmniSidebarNav = ({ const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); return ( - ); } // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { const OmniLinks = turnItemsIntoLinks(menuItems, activePage); - console.log('menuItems', menuItems); - console.log('OmniLinks', OmniLinks); return ( - + ); } else if (fallbackItems && fallbackItems.length > 0) { return ( diff --git a/src/components/sidebarNav/index.js b/src/components/sidebarNav/index.js deleted file mode 100644 index 9525d659d1..0000000000 --- a/src/components/sidebarNav/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react" -import { Link, useStaticQuery, graphql } from "gatsby" - -import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" - - -function turnItemIntoLink(item, activePage) { - return { - isActive: item.link === activePage, - links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, - linkContent: - {item.title} - - } -} - -const turnItemsIntoLinks = (items, activePage) => { - return items.map((item) => { - return turnItemIntoLink(item, activePage); - }) -} - -const SidebarNav = ({ links, title }) => { - return ( - - ) -} - -export default SidebarNav -export { SidebarNav, turnItemsIntoLinks } From 5e940089c1deeb8949564a3fccb955c8ad89ab4e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:48:24 -0500 Subject: [PATCH 089/259] moving test fixture --- src/components/omniSidebarNav/helpers.test.js | 2 +- .../omniSidebarNav/{ => testfixtures}/allGuides.testfixture.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/components/omniSidebarNav/{ => testfixtures}/allGuides.testfixture.js (100%) diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 22dc5aba29..762558fcd5 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,6 +1,6 @@ import { expect, test } from 'vitest'; import { findSubMenuItemsToUse, getGuideDirectory } from './helpers'; -import AllGuides from './allGuides.testfixture'; +import AllGuides from './testfixtures/allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems'; test('finds sub menu to use', () => { diff --git a/src/components/omniSidebarNav/allGuides.testfixture.js b/src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js similarity index 100% rename from src/components/omniSidebarNav/allGuides.testfixture.js rename to src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js From fc9f98ca466e839c4e4ef8d56f00c0a7ef42857c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 3 Jul 2024 23:59:59 -0500 Subject: [PATCH 090/259] simplyfing a function --- src/components/omniSidebarNav/helpers.js | 11 +++++++++-- src/components/omniSidebarNav/index.js | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index bbd029b156..bcc692ed43 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -13,9 +13,16 @@ function turnItemIntoLink(item, activePage) { } const turnItemsIntoLinks = (items, activePage) => { - return items.map((item) => { + const returning = items.map((item) => { return turnItemIntoLink(item, activePage); }) + console.log(returning); + return returning; +} + +const simplerTurnItemsIntoLinks = (item, activePage) => { + + return turnItemIntoLink(item, activePage) } function containsActiveLink(item, activePage) { @@ -85,4 +92,4 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { }; }; -export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, turnItemsIntoLinks }; +export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, turnItemsIntoLinks, simplerTurnItemsIntoLinks }; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 7e670f46d3..984c1a24aa 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -2,7 +2,7 @@ import React from 'react'; import Navbar from '../navbar'; import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" import getOmniItems from './getOmniItems'; -import { findSubMenuItemsToUse, getOmniSidebarActiveSection, turnItemsIntoLinks } from './helpers.js'; +import { findSubMenuItemsToUse, getOmniSidebarActiveSection, turnItemsIntoLinks, simplerTurnItemsIntoLinks } from './helpers.js'; const OmniSidebarNav = ({ activePage, @@ -26,11 +26,11 @@ const OmniSidebarNav = ({ } // @todo, checking the 0 property is a hack, need to fix this. else if (menuItems[0]) { - const OmniLinks = turnItemsIntoLinks(menuItems, activePage); + const OmniLinks = simplerTurnItemsIntoLinks(menuItems[0], activePage); return ( ); } else if (fallbackItems && fallbackItems.length > 0) { From 938f290ea1e76132b73574e424a988e433799620 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jul 2024 00:05:21 -0500 Subject: [PATCH 091/259] simplify data structures --- src/components/omniSidebarNav/helpers.js | 20 ++++---------------- src/components/omniSidebarNav/index.js | 17 ++++++++--------- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index bcc692ed43..f432556c88 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -4,27 +4,15 @@ import getOmniItems from './getOmniItems'; import React from "react" import { Link } from "gatsby" -function turnItemIntoLink(item, activePage) { +// @todo, rename function and add a test for this. +const simplerTurnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, - links: item.children ? item.children.map((child) => turnItemIntoLink(child, activePage)) : false, + links: item.children ? item.children.map((child) => simplerTurnItemsIntoLinks(child, activePage)) : false, linkContent: React.createElement(Link, { to: item.link }, item.title) } } -const turnItemsIntoLinks = (items, activePage) => { - const returning = items.map((item) => { - return turnItemIntoLink(item, activePage); - }) - console.log(returning); - return returning; -} - -const simplerTurnItemsIntoLinks = (item, activePage) => { - - return turnItemIntoLink(item, activePage) -} - function containsActiveLink(item, activePage) { if (item.link === activePage) { return true; @@ -92,4 +80,4 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { }; }; -export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, turnItemsIntoLinks, simplerTurnItemsIntoLinks }; +export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, simplerTurnItemsIntoLinks }; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 984c1a24aa..2ed2f994a1 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -2,7 +2,7 @@ import React from 'react'; import Navbar from '../navbar'; import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" import getOmniItems from './getOmniItems'; -import { findSubMenuItemsToUse, getOmniSidebarActiveSection, turnItemsIntoLinks, simplerTurnItemsIntoLinks } from './helpers.js'; +import { findSubMenuItemsToUse, getOmniSidebarActiveSection, simplerTurnItemsIntoLinks } from './helpers.js'; const OmniSidebarNav = ({ activePage, @@ -10,23 +10,22 @@ const OmniSidebarNav = ({ fallbackTitle = '', submenuPathToUse = '', }) => { - const menuItems = [getOmniSidebarActiveSection({ activePage })]; + const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { - const submenuItems = [findSubMenuItemsToUse(submenuPathToUse, OmniItems)]; - const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); + const submenuItems = findSubMenuItemsToUse(submenuPathToUse, OmniItems); + const submenuLinks = simplerTurnItemsIntoLinks(submenuItems, activePage); return ( ); } - // @todo, checking the 0 property is a hack, need to fix this. - else if (menuItems[0]) { - const OmniLinks = simplerTurnItemsIntoLinks(menuItems[0], activePage); + else if (menuItems) { + const OmniLinks = simplerTurnItemsIntoLinks(menuItems, activePage); return ( Date: Thu, 4 Jul 2024 00:07:44 -0500 Subject: [PATCH 092/259] running prettier --- .../omniSidebarNav/allGuidesQuery.js | 1 - src/components/omniSidebarNav/helpers.js | 28 +- src/components/omniSidebarNav/helpers.test.js | 20 +- src/components/omniSidebarNav/index.js | 11 +- .../testfixtures/allGuides.testfixture.js | 10394 ++++++++-------- .../testfixtures/guideDirectoryItems.js | 31 +- 6 files changed, 5292 insertions(+), 5193 deletions(-) diff --git a/src/components/omniSidebarNav/allGuidesQuery.js b/src/components/omniSidebarNav/allGuidesQuery.js index 31c599e49d..4d9a0a63c6 100644 --- a/src/components/omniSidebarNav/allGuidesQuery.js +++ b/src/components/omniSidebarNav/allGuidesQuery.js @@ -32,5 +32,4 @@ const allGuides = () => { return AllTheGuides; }; - export default allGuides; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index f432556c88..e3fd8b2520 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,17 +1,20 @@ - import allGuides from './allGuidesQuery'; import getOmniItems from './getOmniItems'; -import React from "react" -import { Link } from "gatsby" +import React from 'react'; +import { Link } from 'gatsby'; // @todo, rename function and add a test for this. const simplerTurnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, - links: item.children ? item.children.map((child) => simplerTurnItemsIntoLinks(child, activePage)) : false, - linkContent: React.createElement(Link, { to: item.link }, item.title) - } -} + links: item.children + ? item.children.map((child) => + simplerTurnItemsIntoLinks(child, activePage), + ) + : false, + linkContent: React.createElement(Link, { to: item.link }, item.title), + }; +}; function containsActiveLink(item, activePage) { if (item.link === activePage) { @@ -26,7 +29,6 @@ function containsActiveLink(item, activePage) { return false; } - // @todo, add a test for this. const getOmniSidebarActiveSection = ({ activePage }) => { const OmniItems = getOmniItems(); @@ -50,7 +52,7 @@ const findSubMenuItemsToUse = function (maximumParent, NestedItems) { } } return undefined; -} +}; // return an item list for a guide directory. // guideDirectory is the directory name of the guide. @@ -58,7 +60,6 @@ const findSubMenuItemsToUse = function (maximumParent, NestedItems) { // For testing purposes, AllGuides can be directly set with the fixture // allGuides.testfixtures.js const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { - const ChildItems = []; var guideTitle = ''; for (let item of AllGuides.allGuides.edges) { @@ -80,4 +81,9 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { }; }; -export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, simplerTurnItemsIntoLinks }; +export { + findSubMenuItemsToUse, + getGuideDirectory, + getOmniSidebarActiveSection, + simplerTurnItemsIntoLinks, +}; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 762558fcd5..b3d59f9e85 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -4,7 +4,6 @@ import AllGuides from './testfixtures/allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems'; test('finds sub menu to use', () => { - const sampleItems = [ { link: 'test', @@ -12,14 +11,17 @@ test('finds sub menu to use', () => { { link: 'test2', }, - ] - - const parentPath = 'test' - expect(findSubMenuItemsToUse(parentPath, sampleItems)).toEqual({ link: 'test' }) -}) + ]; + const parentPath = 'test'; + expect(findSubMenuItemsToUse(parentPath, sampleItems)).toEqual({ + link: 'test', + }); +}); test('Check that the items for a specific guide directory path are correct', () => { - const guideDirectory = "guides/decoupled/wp-backend-starters"; - expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual(guideDirectoryItems) -}) + const guideDirectory = 'guides/decoupled/wp-backend-starters'; + expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual( + guideDirectoryItems, + ); +}); diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 2ed2f994a1..fc097e310d 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -1,8 +1,12 @@ import React from 'react'; import Navbar from '../navbar'; -import { SideNavCompact } from "@pantheon-systems/pds-toolkit-react" +import { SideNavCompact } from '@pantheon-systems/pds-toolkit-react'; import getOmniItems from './getOmniItems'; -import { findSubMenuItemsToUse, getOmniSidebarActiveSection, simplerTurnItemsIntoLinks } from './helpers.js'; +import { + findSubMenuItemsToUse, + getOmniSidebarActiveSection, + simplerTurnItemsIntoLinks, +} from './helpers.js'; const OmniSidebarNav = ({ activePage, @@ -23,8 +27,7 @@ const OmniSidebarNav = ({ menuItems={submenuLinks.links} /> ); - } - else if (menuItems) { + } else if (menuItems) { const OmniLinks = simplerTurnItemsIntoLinks(menuItems, activePage); return ( Date: Tue, 9 Jul 2024 21:05:43 -0500 Subject: [PATCH 093/259] checking for search js before adding it --- src/components/addSearch.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/components/addSearch.js b/src/components/addSearch.js index 2231670b08..c8e88d4844 100644 --- a/src/components/addSearch.js +++ b/src/components/addSearch.js @@ -21,15 +21,17 @@ class AddSearch extends React.Component { } } const script = document.createElement("script") - script.setAttribute( - "src", - `https://cdn.addsearch.com/v5/addsearch-ui.min.js?key=a7b957b7a8f57f4cc544c54f289611c6&id=search_widget${ - resultPage.includes("search") ? "&type=resultpage" : "" - }` - ) - script.setAttribute("defer", true) - document.body.appendChild(script) + if (!document.querySelector('script[src*="addsearch-ui.min.js"]')) { + script.setAttribute( + "src", + `https://cdn.addsearch.com/v5/addsearch-ui.min.js?key=a7b957b7a8f57f4cc544c54f289611c6&id=search_widget${resultPage.includes("search") ? "&type=resultpage" : "" + }` + ) + script.setAttribute("defer", true) + + document.body.appendChild(script) + } } render() { return
From 81a27f5f28b0ce7c10c8de8dc3a56713d3a1fa7f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 9 Jul 2024 21:28:44 -0500 Subject: [PATCH 094/259] cleanup --- src/components/omniSidebarNav/getOmniItems.js | 21 ++----------------- src/components/omniSidebarNav/helpers.js | 6 +++--- src/components/omniSidebarNav/index.js | 6 +++--- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index b29f7140b6..e9c480bf92 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -3,37 +3,20 @@ import { getGuideDirectory } from './helpers'; const getOmniItems = () => { const OmniItems = [ - { - link: '/get-startedasdf', - title: 'Get Started', - }, { link: '/guides/decoupled', title: 'Front-End Sites', children: [ getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), getGuideDirectory('guides/decoupled/wp-backend-starters'), + // @todo, add the rest of the front end guides ], }, { link: '/certification', title: 'WebOps Certification', children: CertificationItems, - }, - { - link: '/get-started', - title: 'Get Started', - children: [ - { - link: '/get-startasdfasdfed', - title: 'Get Started More', - }, - { - link: '/get-staasdfrted', - title: 'Get Started More', - }, - ], - }, + } ]; return OmniItems; }; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index e3fd8b2520..6967fe275d 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -4,12 +4,12 @@ import React from 'react'; import { Link } from 'gatsby'; // @todo, rename function and add a test for this. -const simplerTurnItemsIntoLinks = (item, activePage) => { +const turnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, links: item.children ? item.children.map((child) => - simplerTurnItemsIntoLinks(child, activePage), + turnItemsIntoLinks(child, activePage), ) : false, linkContent: React.createElement(Link, { to: item.link }, item.title), @@ -85,5 +85,5 @@ export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, - simplerTurnItemsIntoLinks, + turnItemsIntoLinks, }; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index fc097e310d..91f9208456 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -5,7 +5,7 @@ import getOmniItems from './getOmniItems'; import { findSubMenuItemsToUse, getOmniSidebarActiveSection, - simplerTurnItemsIntoLinks, + turnItemsIntoLinks, } from './helpers.js'; const OmniSidebarNav = ({ @@ -20,7 +20,7 @@ const OmniSidebarNav = ({ // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { const submenuItems = findSubMenuItemsToUse(submenuPathToUse, OmniItems); - const submenuLinks = simplerTurnItemsIntoLinks(submenuItems, activePage); + const submenuLinks = turnItemsIntoLinks(submenuItems, activePage); return ( ); } else if (menuItems) { - const OmniLinks = simplerTurnItemsIntoLinks(menuItems, activePage); + const OmniLinks = turnItemsIntoLinks(menuItems, activePage); return ( Date: Tue, 9 Jul 2024 21:38:18 -0500 Subject: [PATCH 095/259] adding some doc blocks and minor refactor --- src/components/omniSidebarNav/helpers.js | 19 ++++++++++++++++--- src/components/omniSidebarNav/index.js | 3 ++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 6967fe275d..bd791cf4bd 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -3,7 +3,14 @@ import getOmniItems from './getOmniItems'; import React from 'react'; import { Link } from 'gatsby'; -// @todo, rename function and add a test for this. +/** + * Converts items into links recursively. + * + * @param {Object} item - The item to convert into a link. + * @param {string} activePage - The active page link. + * @returns {Object} - The converted item with link properties. + */ +// @todo add tests for this function. const turnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, @@ -16,6 +23,13 @@ const turnItemsIntoLinks = (item, activePage) => { }; }; +/** + * Checks if an item or any of its children have a link that matches the active page. + * + * @param {Object} item - The item to check. + * @param {string} activePage - The active page link. + * @returns {boolean} - True if the item or any of its children have a link that matches the active page, false otherwise. + */ function containsActiveLink(item, activePage) { if (item.link === activePage) { return true; @@ -30,8 +44,7 @@ function containsActiveLink(item, activePage) { } // @todo, add a test for this. -const getOmniSidebarActiveSection = ({ activePage }) => { - const OmniItems = getOmniItems(); +const getOmniSidebarActiveSection = (activePage, OmniItems) => { if (OmniItems) { for (let item of OmniItems) { if (containsActiveLink(item, activePage)) { diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 91f9208456..b21f0447b8 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -14,8 +14,9 @@ const OmniSidebarNav = ({ fallbackTitle = '', submenuPathToUse = '', }) => { - const menuItems = getOmniSidebarActiveSection({ activePage }); const OmniItems = getOmniItems(); + const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); + // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { From 15270c0f3ad9fe37715711b0e38ed0fb3808018c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 10:38:12 -0500 Subject: [PATCH 096/259] docs and cleanup --- src/components/omniSidebarNav/helpers.test.js | 2 +- src/components/omniSidebarNav/index.js | 3 ++- ...DirectoryItems.js => guideDirectoryItems.textfixture.js} | 0 src/components/omniSidebarNav/testfixtures/readme.md | 5 +++++ src/templates/certificationpage.js | 6 ------ src/templates/guide.js | 3 --- tests/package.json | 2 ++ 7 files changed, 10 insertions(+), 11 deletions(-) rename src/components/omniSidebarNav/testfixtures/{guideDirectoryItems.js => guideDirectoryItems.textfixture.js} (100%) create mode 100644 src/components/omniSidebarNav/testfixtures/readme.md diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index b3d59f9e85..b7bd9b55e5 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,7 +1,7 @@ import { expect, test } from 'vitest'; import { findSubMenuItemsToUse, getGuideDirectory } from './helpers'; import AllGuides from './testfixtures/allGuides.testfixture'; -import guideDirectoryItems from './testfixtures/guideDirectoryItems'; +import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; test('finds sub menu to use', () => { const sampleItems = [ diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index b21f0447b8..c1f81d9197 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -8,6 +8,8 @@ import { turnItemsIntoLinks, } from './helpers.js'; +// @todo, run prettier one more time on this directory before removing it from the PR. + const OmniSidebarNav = ({ activePage, fallbackItems = null, @@ -17,7 +19,6 @@ const OmniSidebarNav = ({ const OmniItems = getOmniItems(); const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); - // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { const submenuItems = findSubMenuItemsToUse(submenuPathToUse, OmniItems); diff --git a/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js b/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js similarity index 100% rename from src/components/omniSidebarNav/testfixtures/guideDirectoryItems.js rename to src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js diff --git a/src/components/omniSidebarNav/testfixtures/readme.md b/src/components/omniSidebarNav/testfixtures/readme.md new file mode 100644 index 0000000000..f32c1cb472 --- /dev/null +++ b/src/components/omniSidebarNav/testfixtures/readme.md @@ -0,0 +1,5 @@ +# Test fixtures + +This directory contains test fixtures for the `OmniSidebarNav` component. + +They are used in in `helpers.test.js` to test the data transformation functions that come from `helpers.js`. diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index 6ecc69df07..7cec13a6ba 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -6,14 +6,11 @@ import SEO from "../layout/seo" import SearchBar from "../layout/SearchBar" import HeaderBody from "../components/headerBody" import GetFeedback from "../components/getFeedback" - import OmniSidebarNav from "../components/omniSidebarNav"; import NavButtons from "../components/navButtons" import TOC from "../components/toc" import MdxWrapper from "../components/mdxWrapper" - - class CertificationTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ @@ -76,8 +73,6 @@ class CertificationTemplate extends React.Component { activePage={node.fields.slug} submenuPathToUse="/certification"/> - - @@ -101,7 +96,6 @@ class CertificationTemplate extends React.Component { /> - { return { @@ -57,7 +55,6 @@ class GuideTemplate extends React.Component {
{children}
) const ContentLayoutType = hasTOC ? SidebarLayout : ContainerDiv - //const menuItems = getOmniSidebarActiveSection({ activePage: "guides/decoupled/wp-nextjs-frontend-starters/caching/" }); return ( diff --git a/tests/package.json b/tests/package.json index 6b7c6c6aee..34e5d86f5d 100644 --- a/tests/package.json +++ b/tests/package.json @@ -13,9 +13,11 @@ "scripts": { "end-to-end:update-live-snapshots": "npx playwright test --update-snapshots", "end-to-end:pull-request-preview": "PLAYWRIGHT_BASE_URL='https://pr-'${GITHUB_PR_NUMBER}'-documentation.appa.pantheon.site' npx playwright test", + // @TODO: add info in the readme for these scripts "end-to-end:pull-request-preview-snapshots": "PLAYWRIGHT_BASE_URL='https://pr-'${GITHUB_PR_NUMBER}'-documentation.appa.pantheon.site' npx playwright test --update-snapshots", "end-to-end:local": "PLAYWRIGHT_BASE_URL='http://localhost:8000/' npx playwright test", "end-to-end:compare-pr-to-live": "npm run end-to-end:update-live-snapshots && npm run end-to-end:pull-request-preview", + // @TODO: add info in the readme for these scripts "end-to-end:compare-local-to-live": "npm run end-to-end:update-live-snapshots && npm run end-to-end:local", "end-to-end:compare-local-to-pr": "npm run end-to-end:pull-request-preview-snapshots && npm run end-to-end:local" } From 31bdf60605c4126dca1f0ccd00c8eef9a6ebe81e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 10:42:09 -0500 Subject: [PATCH 097/259] more comments --- src/components/omniSidebarNav/allGuidesQuery.js | 4 ++++ src/components/omniSidebarNav/submenus/certification.js | 4 ++++ .../omniSidebarNav/testfixtures/allGuides.testfixture.js | 8 ++++++-- .../testfixtures/guideDirectoryItems.textfixture.js | 3 +++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/allGuidesQuery.js b/src/components/omniSidebarNav/allGuidesQuery.js index 4d9a0a63c6..463d1ceb9a 100644 --- a/src/components/omniSidebarNav/allGuidesQuery.js +++ b/src/components/omniSidebarNav/allGuidesQuery.js @@ -1,5 +1,9 @@ import { useStaticQuery, graphql } from 'gatsby'; +/** + * Retrieves all content from the /source/content/guides directory. + * @returns {Object} The result of the GraphQL query containing all the guides. + */ const allGuides = () => { const AllTheGuides = useStaticQuery( graphql` diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js index e19b26293d..d069ce4a27 100644 --- a/src/components/omniSidebarNav/submenus/certification.js +++ b/src/components/omniSidebarNav/submenus/certification.js @@ -1,3 +1,7 @@ +/** + * Array of of links specific to the Certification section of the sidebar. + * @type {Array} + */ const CertificationItems = [ { link: '/certification/about', diff --git a/src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js b/src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js index 71546dcaa6..82b9ebb97d 100644 --- a/src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js +++ b/src/components/omniSidebarNav/testfixtures/allGuides.testfixture.js @@ -1,5 +1,9 @@ -// A dump of the data from the GraphQL query used in the OmniSidebarNav component. -// This is kept in the repo for reference and as a fixture for unit tests. +/** + * A dump of the data from the GraphQL query used in the OmniSidebarNav component. + * + * @typedef {Object} AllGuides + * @property {Array} allGuides - An array of guide objects. + */ const AllGuides = { allGuides: { edges: [ diff --git a/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js b/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js index 8ea4ec15ea..372ad02b59 100644 --- a/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js +++ b/src/components/omniSidebarNav/testfixtures/guideDirectoryItems.textfixture.js @@ -1,3 +1,6 @@ +/** + * A data fixture for used to test getGuideDirectory(). + */ const guideDirectoryItems = { link: '/guides/decoupled/wp-backend-starters', title: 'WordPress Backend Starter for Front-End Sites', From 326b254ca9abe0099639a0595002f8481e24f0f8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 10:47:58 -0500 Subject: [PATCH 098/259] more cleanup --- src/components/omniSidebarNav/getOmniItems.js | 6 +++++- src/components/omniSidebarNav/helpers.js | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index e9c480bf92..0155a5fcf0 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,6 +1,10 @@ import CertificationItems from './submenus/certification'; import { getGuideDirectory } from './helpers'; +/** + * Retrieves the all the menu items for the sidebar navigation. + * @returns {Array} An array of Omni items. + */ const getOmniItems = () => { const OmniItems = [ { @@ -9,7 +13,7 @@ const getOmniItems = () => { children: [ getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), getGuideDirectory('guides/decoupled/wp-backend-starters'), - // @todo, add the rest of the front end guides + // @todo, add the rest of the front-end guides ], }, { diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index bd791cf4bd..0b3a0da86d 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -1,5 +1,4 @@ import allGuides from './allGuidesQuery'; -import getOmniItems from './getOmniItems'; import React from 'react'; import { Link } from 'gatsby'; From bbcae6c9d82d6cd89f4af49be24735e2889fff97 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 11:04:11 -0500 Subject: [PATCH 099/259] more comments more tests --- src/components/omniSidebarNav/helpers.js | 35 +++-- src/components/omniSidebarNav/helpers.test.js | 12 +- src/components/omniSidebarNav/index.js | 2 + .../testfixtures/activeSection.testfixture.js | 69 +++++++++ .../testfixtures/omniItems.textfixture.js | 138 ++++++++++++++++++ 5 files changed, 243 insertions(+), 13 deletions(-) create mode 100644 src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js create mode 100644 src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 0b3a0da86d..34fc669caa 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -9,7 +9,6 @@ import { Link } from 'gatsby'; * @param {string} activePage - The active page link. * @returns {Object} - The converted item with link properties. */ -// @todo add tests for this function. const turnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, @@ -42,7 +41,13 @@ function containsActiveLink(item, activePage) { return false; } -// @todo, add a test for this. +/** + * Returns the active section from the Omni sidebar navigation based on the active page. + * + * @param {string} activePage - The active page. + * @param {Array} OmniItems - The array of Omni sidebar items. + * @returns {Object|undefined} - The active section object or undefined if not found. + */ const getOmniSidebarActiveSection = (activePage, OmniItems) => { if (OmniItems) { for (let item of OmniItems) { @@ -54,23 +59,29 @@ const getOmniSidebarActiveSection = (activePage, OmniItems) => { return undefined; }; -// Searches through the top level items find the subdata structure that -// matches the parent path requested. -// todo, rename "maximumParent" to something better. -const findSubMenuItemsToUse = function (maximumParent, NestedItems) { +/** + * Finds the sub-menu items to use based on the provided top level parent path. + * + * @param {string} topLevelParentPath - The top level parent path to search for. + * @param {Array} NestedItems - The array of nested items to search within. + * @returns {Object|undefined} - The sub-menu item that matches the top level parent path, or undefined if not found. + */ +const findSubMenuItemsToUse = function (topLevelParentPath, NestedItems) { for (let item of NestedItems) { - if (item.link === maximumParent) { + if (item.link === topLevelParentPath) { return item; } } return undefined; }; -// return an item list for a guide directory. -// guideDirectory is the directory name of the guide. -// AllGuides is the result of the allGuides query. -// For testing purposes, AllGuides can be directly set with the fixture -// allGuides.testfixtures.js +/** + * Retrieve menu items based on a given directory path from all guides. + * + * @param {string} guideDirectory - The directory of the guide. + * @param {Object} [AllGuides=allGuides()] - The object containing all the guides. + * @returns {Object} - The guide directory object with its title, link, and children. + */ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { const ChildItems = []; var guideTitle = ''; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index b7bd9b55e5..19a5dd9fc2 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,7 +1,9 @@ import { expect, test } from 'vitest'; -import { findSubMenuItemsToUse, getGuideDirectory } from './helpers'; +import { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection } from './helpers'; import AllGuides from './testfixtures/allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; +import omniItems from './testfixtures/omniItems.textfixture'; +import activeSection from './testfixtures/activeSection.testfixture'; test('finds sub menu to use', () => { const sampleItems = [ @@ -25,3 +27,11 @@ test('Check that the items for a specific guide directory path are correct', () guideDirectoryItems, ); }); + +test('Check that the active menu can be found', () => { + const activePage = '/guides/decoupled/wp-backend-starters/create'; + expect(getOmniSidebarActiveSection(activePage, omniItems)).toEqual( + activeSection, + ); +}); + diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index c1f81d9197..e45e15b2f7 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -17,7 +17,9 @@ const OmniSidebarNav = ({ submenuPathToUse = '', }) => { const OmniItems = getOmniItems(); + console.log('OmniItems', OmniItems); const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); + console.log('menuItems', menuItems); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { diff --git a/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js b/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js new file mode 100644 index 0000000000..d2c66c6156 --- /dev/null +++ b/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js @@ -0,0 +1,69 @@ +const activeSection = { + "link": "/guides/decoupled", + "title": "Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters", + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters", + "title": "Introduction" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/create", + "title": "Create a New Project" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/build-details", + "title": "View and Trigger Builds" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/caching", + "title": "Caching Recommendations" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", + "title": "Manage Settings" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", + "title": "Configure Content Preview" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", + "title": "Robots.txt File and Indexing" + } + ] + }, + { + "link": "/guides/decoupled/wp-backend-starters", + "title": "WordPress Backend Starter for Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-backend-starters", + "title": "Introduction" + }, + { + "link": "/guides/decoupled/wp-backend-starters/create", + "title": "Create a New Project" + }, + { + "link": "/guides/decoupled/wp-backend-starters/caching", + "title": "Caching Recommendations" + }, + { + "link": "/guides/decoupled/wp-backend-starters/manage-settings", + "title": "Manage Settings" + }, + { + "link": "/guides/decoupled/wp-backend-starters/build-hooks", + "title": "Build Hooks" + } + ] + } + ] +} + + +export default activeSection; diff --git a/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js b/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js new file mode 100644 index 0000000000..76cbaad0b9 --- /dev/null +++ b/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js @@ -0,0 +1,138 @@ +const omniItems = [ + { + "link": "/guides/decoupled", + "title": "Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters", + "title": "WordPress + Next.js Frontend Starter for Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters", + "title": "Introduction" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/create", + "title": "Create a New Project" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/build-details", + "title": "View and Trigger Builds" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/caching", + "title": "Caching Recommendations" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", + "title": "Manage Settings" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", + "title": "Configure Content Preview" + }, + { + "link": "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", + "title": "Robots.txt File and Indexing" + } + ] + }, + { + "link": "/guides/decoupled/wp-backend-starters", + "title": "WordPress Backend Starter for Front-End Sites", + "children": [ + { + "link": "/guides/decoupled/wp-backend-starters", + "title": "Introduction" + }, + { + "link": "/guides/decoupled/wp-backend-starters/create", + "title": "Create a New Project" + }, + { + "link": "/guides/decoupled/wp-backend-starters/caching", + "title": "Caching Recommendations" + }, + { + "link": "/guides/decoupled/wp-backend-starters/manage-settings", + "title": "Manage Settings" + }, + { + "link": "/guides/decoupled/wp-backend-starters/build-hooks", + "title": "Build Hooks" + } + ] + } + ] + }, + { + "link": "/certification", + "title": "WebOps Certification", + "children": [ + { + "link": "/certification/about", + "title": "About the Certification Program" + }, + { + "link": "/certification/exam", + "title": "Taking the Exam" + }, + { + "link": "/certification/study-guide", + "title": "Study Guide", + "children": [ + { + "link": "/certification/study-guide", + "title": "Introduction" + }, + { + "link": "/certification/study-guide/webops", + "title": "Chapter 1: WebOps" + }, + { + "link": "/certification/study-guide/platform", + "title": "Chapter 2: Pantheon Platform" + }, + { + "link": "/certification/study-guide/create", + "title": "Chapter 3: Site Creation" + }, + { + "link": "/certification/study-guide/cdn", + "title": "Chapter 4: Content Delivery Network" + }, + { + "link": "/certification/study-guide/cms", + "title": "Chapter 5: CMS Infrastructure" + }, + { + "link": "/certification/study-guide/deploy", + "title": "Chapter 6: The Deployment Pipeline" + }, + { + "link": "/certification/study-guide/people", + "title": "Chapter 7: Connecting People" + }, + { + "link": "/certification/study-guide/extend", + "title": "Chapter 8: Extend with CLI and Hooks" + }, + { + "link": "/certification/study-guide/automate", + "title": "Chapter 9: Additional Automation" + }, + { + "link": "/certification/study-guide/custom-upstreams", + "title": "Chapter 10: Custom Upstreams" + } + ] + }, + { + "link": "https://certification.pantheon.io/", + "title": "↗ Certification Directory" + } + ] + } +]; + +export default omniItems; From 472c5de7bf6de0dd272db67d03c409e29b0f3b8f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 11:14:37 -0500 Subject: [PATCH 100/259] adding all the front-end sites guides --- src/components/omniSidebarNav/getOmniItems.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 0155a5fcf0..1ce934404f 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -9,11 +9,15 @@ const getOmniItems = () => { const OmniItems = [ { link: '/guides/decoupled', - title: 'Front-End Sites', + title: 'Front-End Sites and Starter Kits', children: [ + getGuideDirectory('guides/decoupled/overview'), getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), getGuideDirectory('guides/decoupled/wp-backend-starters'), - // @todo, add the rest of the front-end guides + getGuideDirectory('guides/decoupled/wp-gatsby-frontend-starters'), + getGuideDirectory('guides/decoupled/drupal-backend-starters'), + getGuideDirectory('guides/decoupled/drupal-nextjs-frontend-starters'), + getGuideDirectory('guides/decoupled/no-starter-kit'), ], }, { From 07e534e41b89f1df41370359680624b95bbf0d18 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 11:17:59 -0500 Subject: [PATCH 101/259] removing extra nav alert in the middle of decouple overview pages --- .../decoupled/drupal-backend-starters/01-introduction.md | 8 +------- .../drupal-nextjs-frontend-starters/01-introduction.md | 8 +------- .../guides/decoupled/no-starter-kit/01-introduction.md | 8 +------- .../content/guides/decoupled/overview/01-introduction.md | 7 ------- .../decoupled/wp-backend-starters/01-introduction.md | 8 +------- .../wp-gatsby-frontend-starters/01-introduction.md | 8 +------- .../wp-nextjs-frontend-starters/01-introduction.md | 6 ------ 7 files changed, 5 insertions(+), 48 deletions(-) diff --git a/source/content/guides/decoupled/drupal-backend-starters/01-introduction.md b/source/content/guides/decoupled/drupal-backend-starters/01-introduction.md index 23f0394a4e..cc9fe2de57 100644 --- a/source/content/guides/decoupled/drupal-backend-starters/01-introduction.md +++ b/source/content/guides/decoupled/drupal-backend-starters/01-introduction.md @@ -21,12 +21,6 @@ Front-End Sites on Pantheon allow you to use [decoupled architecture](/guides/de You can use the Drupal backend starter kit to streamline the creation of your Front-End Site on Pantheon. This guide shows you how to install, set up local development, update dependencies, configure build hooks, and more. - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Requirements and Considerations Review [requirements and considerations](/guides/decoupled/overview/considerations) for Front-End Sites on Pantheon before you begin your project. @@ -42,4 +36,4 @@ Refer to [Drupal Kit Packages](https://decoupledkit.pantheon.io/docs/Packages/dr - [WordPress Backend Starter](/guides/decoupled/wp-backend-starters) - [Drupal + Next.js Frontend Starter](/guides/decoupled/drupal-nextjs-frontend-starters) - [WordPress + Next.js Frontend Starter](/guides/decoupled/wp-nextjs-frontend-starters) -- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) \ No newline at end of file +- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) diff --git a/source/content/guides/decoupled/drupal-nextjs-frontend-starters/01-introduction.md b/source/content/guides/decoupled/drupal-nextjs-frontend-starters/01-introduction.md index 1d9f31731f..73f9a2651d 100644 --- a/source/content/guides/decoupled/drupal-nextjs-frontend-starters/01-introduction.md +++ b/source/content/guides/decoupled/drupal-nextjs-frontend-starters/01-introduction.md @@ -22,12 +22,6 @@ You can use a frontend starter kit to streamline the creation of your Front-End - Drupal + Next.js - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Why Use the Next.js Drupal Starter? The `next-drupal-starter` is designed as a starting point for a Next.js site that consumes data from a Drupal backend configured with the [`pantheon_decoupled` module](https://www.drupal.org/project/pantheon_decoupled) installed. @@ -45,4 +39,4 @@ Review [requirements and considerations](/guides/decoupled/overview/consideratio - [WordPress Backend Starter](/guides/decoupled/wp-backend-starters) - [Drupal + Next.js Frontend Starter](/guides/decoupled/drupal-nextjs-frontend-starters) - [WordPress + Next.js Frontend Starter](/guides/decoupled/wp-nextjs-frontend-starters) -- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) \ No newline at end of file +- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) diff --git a/source/content/guides/decoupled/no-starter-kit/01-introduction.md b/source/content/guides/decoupled/no-starter-kit/01-introduction.md index 58d1d0af5b..3a80c2aad0 100644 --- a/source/content/guides/decoupled/no-starter-kit/01-introduction.md +++ b/source/content/guides/decoupled/no-starter-kit/01-introduction.md @@ -32,16 +32,10 @@ Available frontend starters: - [WordPress + Next.js Frontend Starter](/guides/decoupled/wp-nextjs-frontend-starters) - [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Requirements and Considerations Review [requirements and considerations](/guides/decoupled/overview/considerations) for Front-End Sites on Pantheon before you begin your project. ## More Resources -- [Front-End Sites Overview](/guides/decoupled/overview) \ No newline at end of file +- [Front-End Sites Overview](/guides/decoupled/overview) diff --git a/source/content/guides/decoupled/overview/01-introduction.md b/source/content/guides/decoupled/overview/01-introduction.md index 1832b6c3a7..0c755508e0 100644 --- a/source/content/guides/decoupled/overview/01-introduction.md +++ b/source/content/guides/decoupled/overview/01-introduction.md @@ -50,13 +50,6 @@ You can connect your Front-End Site to your Git repository and choose from selec You can also start with a clean set up and connect your site account to an existing Git repository. - - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Front-End Sites Benefits Pantheon's Front-End Sites: diff --git a/source/content/guides/decoupled/wp-backend-starters/01-introduction.md b/source/content/guides/decoupled/wp-backend-starters/01-introduction.md index a9ed7b8008..3d594e3b3c 100644 --- a/source/content/guides/decoupled/wp-backend-starters/01-introduction.md +++ b/source/content/guides/decoupled/wp-backend-starters/01-introduction.md @@ -21,12 +21,6 @@ Front-End Sites on Pantheon allow you to use [decoupled architecture](/guides/de You can use the WordPress backend starter kit to streamline the creation of your Front-End Site on Pantheon. This guide shows you how to install, set up local development, manage WordPress dependencies, configure build hooks, and more. - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Requirements and Considerations Review [requirements and considerations](/guides/decoupled/overview/considerations) for Front-End Sites on Pantheon before you begin your project. @@ -42,4 +36,4 @@ Refer to [WordPress Kit Packages](https://decoupledkit.pantheon.io/docs/Packages - [WordPress Backend Starter](/guides/decoupled/wp-backend-starters) - [Drupal + Next.js Frontend Starter](/guides/decoupled/drupal-nextjs-frontend-starters) - [WordPress + Next.js Frontend Starter](/guides/decoupled/wp-nextjs-frontend-starters) -- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) \ No newline at end of file +- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) diff --git a/source/content/guides/decoupled/wp-gatsby-frontend-starters/01-introduction.md b/source/content/guides/decoupled/wp-gatsby-frontend-starters/01-introduction.md index b666ecd509..520c684e9b 100644 --- a/source/content/guides/decoupled/wp-gatsby-frontend-starters/01-introduction.md +++ b/source/content/guides/decoupled/wp-gatsby-frontend-starters/01-introduction.md @@ -24,12 +24,6 @@ You can use a frontend starter kit to streamline the creation of your Front-End - Next.js + WordPress - Gatsby + WordPress - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Why Use the Gatsby WordPress Starter? The `gatsby-wordpress-starter` is designed as a starting point for a Gatsby @@ -49,4 +43,4 @@ Review [requirements and considerations](/guides/decoupled/overview/consideratio - [WordPress Backend Starter](/guides/decoupled/wp-backend-starters) - [Drupal + Next.js Frontend Starter](/guides/decoupled/drupal-nextjs-frontend-starters) - [WordPress + Next.js Frontend Starter](/guides/decoupled/wp-nextjs-frontend-starters) -- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) \ No newline at end of file +- [WordPress + Gatsby Frontend Starter](/guides/decoupled/wp-gatsby-frontend-starters) diff --git a/source/content/guides/decoupled/wp-nextjs-frontend-starters/01-introduction.md b/source/content/guides/decoupled/wp-nextjs-frontend-starters/01-introduction.md index 62fc654c5c..f621f01da6 100644 --- a/source/content/guides/decoupled/wp-nextjs-frontend-starters/01-introduction.md +++ b/source/content/guides/decoupled/wp-nextjs-frontend-starters/01-introduction.md @@ -24,12 +24,6 @@ You can use a frontend starter kit to streamline the creation of your Front-End - Next.js + WordPress - Gatsby + WordPress - - -Check out the [Front-End Sites landing page](/guides/decoupled/) to access all documentation for Front-End Sites. - - - ## Why Use the Next.js WordPress Starter? The `next-wordpress-starter` is designed as a starting point for a Next.js site that consumes data from a WordPress backend configured with the `pantheon-decoupled` and `wp-graphql` plugins installed. From f4a2fb82e3ea1c353c21068732d04a003bdde52d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 11:37:04 -0500 Subject: [PATCH 102/259] running prettier --- src/components/omniSidebarNav/getOmniItems.js | 2 +- src/components/omniSidebarNav/helpers.js | 4 +- src/components/omniSidebarNav/helpers.test.js | 7 +- .../testfixtures/activeSection.testfixture.js | 81 +++++---- .../testfixtures/omniItems.textfixture.js | 156 +++++++++--------- 5 files changed, 125 insertions(+), 125 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 1ce934404f..f86d7983a1 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -24,7 +24,7 @@ const getOmniItems = () => { link: '/certification', title: 'WebOps Certification', children: CertificationItems, - } + }, ]; return OmniItems; }; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 34fc669caa..34c266edd7 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -13,9 +13,7 @@ const turnItemsIntoLinks = (item, activePage) => { return { isActive: item.link === activePage, links: item.children - ? item.children.map((child) => - turnItemsIntoLinks(child, activePage), - ) + ? item.children.map((child) => turnItemsIntoLinks(child, activePage)) : false, linkContent: React.createElement(Link, { to: item.link }, item.title), }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 19a5dd9fc2..4f787de4fa 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -1,5 +1,9 @@ import { expect, test } from 'vitest'; -import { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection } from './helpers'; +import { + findSubMenuItemsToUse, + getGuideDirectory, + getOmniSidebarActiveSection, +} from './helpers'; import AllGuides from './testfixtures/allGuides.testfixture'; import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; import omniItems from './testfixtures/omniItems.textfixture'; @@ -34,4 +38,3 @@ test('Check that the active menu can be found', () => { activeSection, ); }); - diff --git a/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js b/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js index d2c66c6156..a721b01731 100644 --- a/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js +++ b/src/components/omniSidebarNav/testfixtures/activeSection.testfixture.js @@ -1,69 +1,68 @@ const activeSection = { - "link": "/guides/decoupled", - "title": "Front-End Sites", - "children": [ + link: '/guides/decoupled', + title: 'Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-nextjs-frontend-starters", - "title": "WordPress + Next.js Frontend Starter for Front-End Sites", - "children": [ + link: '/guides/decoupled/wp-nextjs-frontend-starters', + title: 'WordPress + Next.js Frontend Starter for Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-nextjs-frontend-starters", - "title": "Introduction" + link: '/guides/decoupled/wp-nextjs-frontend-starters', + title: 'Introduction', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/create", - "title": "Create a New Project" + link: '/guides/decoupled/wp-nextjs-frontend-starters/create', + title: 'Create a New Project', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/build-details", - "title": "View and Trigger Builds" + link: '/guides/decoupled/wp-nextjs-frontend-starters/build-details', + title: 'View and Trigger Builds', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/caching", - "title": "Caching Recommendations" + link: '/guides/decoupled/wp-nextjs-frontend-starters/caching', + title: 'Caching Recommendations', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", - "title": "Manage Settings" + link: '/guides/decoupled/wp-nextjs-frontend-starters/manage-settings', + title: 'Manage Settings', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", - "title": "Configure Content Preview" + link: '/guides/decoupled/wp-nextjs-frontend-starters/content-preview', + title: 'Configure Content Preview', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", - "title": "Robots.txt File and Indexing" - } - ] + link: '/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing', + title: 'Robots.txt File and Indexing', + }, + ], }, { - "link": "/guides/decoupled/wp-backend-starters", - "title": "WordPress Backend Starter for Front-End Sites", - "children": [ + link: '/guides/decoupled/wp-backend-starters', + title: 'WordPress Backend Starter for Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-backend-starters", - "title": "Introduction" + link: '/guides/decoupled/wp-backend-starters', + title: 'Introduction', }, { - "link": "/guides/decoupled/wp-backend-starters/create", - "title": "Create a New Project" + link: '/guides/decoupled/wp-backend-starters/create', + title: 'Create a New Project', }, { - "link": "/guides/decoupled/wp-backend-starters/caching", - "title": "Caching Recommendations" + link: '/guides/decoupled/wp-backend-starters/caching', + title: 'Caching Recommendations', }, { - "link": "/guides/decoupled/wp-backend-starters/manage-settings", - "title": "Manage Settings" + link: '/guides/decoupled/wp-backend-starters/manage-settings', + title: 'Manage Settings', }, { - "link": "/guides/decoupled/wp-backend-starters/build-hooks", - "title": "Build Hooks" - } - ] - } - ] -} - + link: '/guides/decoupled/wp-backend-starters/build-hooks', + title: 'Build Hooks', + }, + ], + }, + ], +}; export default activeSection; diff --git a/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js b/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js index 76cbaad0b9..c88ca7327f 100644 --- a/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js +++ b/src/components/omniSidebarNav/testfixtures/omniItems.textfixture.js @@ -1,138 +1,138 @@ const omniItems = [ { - "link": "/guides/decoupled", - "title": "Front-End Sites", - "children": [ + link: '/guides/decoupled', + title: 'Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-nextjs-frontend-starters", - "title": "WordPress + Next.js Frontend Starter for Front-End Sites", - "children": [ + link: '/guides/decoupled/wp-nextjs-frontend-starters', + title: 'WordPress + Next.js Frontend Starter for Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-nextjs-frontend-starters", - "title": "Introduction" + link: '/guides/decoupled/wp-nextjs-frontend-starters', + title: 'Introduction', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/create", - "title": "Create a New Project" + link: '/guides/decoupled/wp-nextjs-frontend-starters/create', + title: 'Create a New Project', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/build-details", - "title": "View and Trigger Builds" + link: '/guides/decoupled/wp-nextjs-frontend-starters/build-details', + title: 'View and Trigger Builds', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/caching", - "title": "Caching Recommendations" + link: '/guides/decoupled/wp-nextjs-frontend-starters/caching', + title: 'Caching Recommendations', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", - "title": "Manage Settings" + link: '/guides/decoupled/wp-nextjs-frontend-starters/manage-settings', + title: 'Manage Settings', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", - "title": "Configure Content Preview" + link: '/guides/decoupled/wp-nextjs-frontend-starters/content-preview', + title: 'Configure Content Preview', }, { - "link": "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", - "title": "Robots.txt File and Indexing" - } - ] + link: '/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing', + title: 'Robots.txt File and Indexing', + }, + ], }, { - "link": "/guides/decoupled/wp-backend-starters", - "title": "WordPress Backend Starter for Front-End Sites", - "children": [ + link: '/guides/decoupled/wp-backend-starters', + title: 'WordPress Backend Starter for Front-End Sites', + children: [ { - "link": "/guides/decoupled/wp-backend-starters", - "title": "Introduction" + link: '/guides/decoupled/wp-backend-starters', + title: 'Introduction', }, { - "link": "/guides/decoupled/wp-backend-starters/create", - "title": "Create a New Project" + link: '/guides/decoupled/wp-backend-starters/create', + title: 'Create a New Project', }, { - "link": "/guides/decoupled/wp-backend-starters/caching", - "title": "Caching Recommendations" + link: '/guides/decoupled/wp-backend-starters/caching', + title: 'Caching Recommendations', }, { - "link": "/guides/decoupled/wp-backend-starters/manage-settings", - "title": "Manage Settings" + link: '/guides/decoupled/wp-backend-starters/manage-settings', + title: 'Manage Settings', }, { - "link": "/guides/decoupled/wp-backend-starters/build-hooks", - "title": "Build Hooks" - } - ] - } - ] + link: '/guides/decoupled/wp-backend-starters/build-hooks', + title: 'Build Hooks', + }, + ], + }, + ], }, { - "link": "/certification", - "title": "WebOps Certification", - "children": [ + link: '/certification', + title: 'WebOps Certification', + children: [ { - "link": "/certification/about", - "title": "About the Certification Program" + link: '/certification/about', + title: 'About the Certification Program', }, { - "link": "/certification/exam", - "title": "Taking the Exam" + link: '/certification/exam', + title: 'Taking the Exam', }, { - "link": "/certification/study-guide", - "title": "Study Guide", - "children": [ + link: '/certification/study-guide', + title: 'Study Guide', + children: [ { - "link": "/certification/study-guide", - "title": "Introduction" + link: '/certification/study-guide', + title: 'Introduction', }, { - "link": "/certification/study-guide/webops", - "title": "Chapter 1: WebOps" + link: '/certification/study-guide/webops', + title: 'Chapter 1: WebOps', }, { - "link": "/certification/study-guide/platform", - "title": "Chapter 2: Pantheon Platform" + link: '/certification/study-guide/platform', + title: 'Chapter 2: Pantheon Platform', }, { - "link": "/certification/study-guide/create", - "title": "Chapter 3: Site Creation" + link: '/certification/study-guide/create', + title: 'Chapter 3: Site Creation', }, { - "link": "/certification/study-guide/cdn", - "title": "Chapter 4: Content Delivery Network" + link: '/certification/study-guide/cdn', + title: 'Chapter 4: Content Delivery Network', }, { - "link": "/certification/study-guide/cms", - "title": "Chapter 5: CMS Infrastructure" + link: '/certification/study-guide/cms', + title: 'Chapter 5: CMS Infrastructure', }, { - "link": "/certification/study-guide/deploy", - "title": "Chapter 6: The Deployment Pipeline" + link: '/certification/study-guide/deploy', + title: 'Chapter 6: The Deployment Pipeline', }, { - "link": "/certification/study-guide/people", - "title": "Chapter 7: Connecting People" + link: '/certification/study-guide/people', + title: 'Chapter 7: Connecting People', }, { - "link": "/certification/study-guide/extend", - "title": "Chapter 8: Extend with CLI and Hooks" + link: '/certification/study-guide/extend', + title: 'Chapter 8: Extend with CLI and Hooks', }, { - "link": "/certification/study-guide/automate", - "title": "Chapter 9: Additional Automation" + link: '/certification/study-guide/automate', + title: 'Chapter 9: Additional Automation', }, { - "link": "/certification/study-guide/custom-upstreams", - "title": "Chapter 10: Custom Upstreams" - } - ] + link: '/certification/study-guide/custom-upstreams', + title: 'Chapter 10: Custom Upstreams', + }, + ], }, { - "link": "https://certification.pantheon.io/", - "title": "↗ Certification Directory" - } - ] - } + link: 'https://certification.pantheon.io/', + title: '↗ Certification Directory', + }, + ], + }, ]; export default omniItems; From 4ba642056d75b77fa5afac890c789638e97e69ab Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 11:39:15 -0500 Subject: [PATCH 103/259] going back to old prettier config files. Redo this change under https://github.com/pantheon-systems/documentation/issues/9082 --- .prettierrc | 7 +++++++ prettier.config.js | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 .prettierrc delete mode 100644 prettier.config.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..48e90e8d40 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "endOfLine": "lf", + "semi": false, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5" +} diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index de2f53cdf9..0000000000 --- a/prettier.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - singleQuote: true, - trailingComma: 'all', -}; From d427598bf539fafe6c2f386b06949fb6663f0817 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 17:42:05 -0500 Subject: [PATCH 104/259] reporting files --- gatsby-node.js | 30 +++++++++++++++++++ src/components/omniSidebarNav/reporting.js | 17 +++++++++++ .../omniSidebarNav/reporting.test.js | 0 3 files changed, 47 insertions(+) create mode 100644 src/components/omniSidebarNav/reporting.js create mode 100644 src/components/omniSidebarNav/reporting.test.js diff --git a/gatsby-node.js b/gatsby-node.js index 65c8222a25..05b3b98b2f 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -629,5 +629,35 @@ exports.onPreBootstrap = () => { fs.copySync(scriptsCopyFrom, scriptsCopyTo) } + + +exports.onPostBuild = async ({ graphql, getNodes }) => { + // Fetch all pages created by Gatsby + const pages = getNodes().filter(node => node.internal.type === 'SitePage'); + + + //console.log('pages', pages); + //loop over pages and log the path + pages.forEach(page => { + console.log('path', page.path); + }); + + + + // // Read the menu links from your menu file (assuming it's a JSON file) + // const menuFilePath = path.resolve(__dirname, 'src/data/menu.json'); + // const menuData = JSON.parse(fs.readFileSync(menuFilePath, 'utf-8')); + + // // Extract the paths from the menu links + // const menuLinks = menuData.map(item => item.path); + + // // Check how many pages are in the menu + // const pagesInMenu = pages.filter(page => menuLinks.includes(page.path)); + + // console.log(`Total Pages Created by Gatsby: ${pages.length}`); + // console.log(`Total Pages in Menu: ${pagesInMenu.length}`); +}; + + /* todo should there be an error thrown if a release note category is set that is not allowed */ /* todo, infer published date from file name. And throw an error if there are files that don't follow the pattern. */ diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js new file mode 100644 index 0000000000..9696ac8f15 --- /dev/null +++ b/src/components/omniSidebarNav/reporting.js @@ -0,0 +1,17 @@ +import { expect, test } from 'vitest'; +// import { +// findSubMenuItemsToUse, +// getGuideDirectory, +// getOmniSidebarActiveSection, +// } from './helpers'; +// import AllGuides from './testfixtures/allGuides.testfixture'; +// import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; +import omniItems from './testfixtures/omniItems.textfixture'; +// import activeSection from './testfixtures/activeSection.testfixture'; + +test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { + + + const parentPath = 'test'; + expect(omniItems.length).toEqual(144); +}); diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js new file mode 100644 index 0000000000..e69de29bb2 From 6a36bb745bde3c9e965e6061ce29e7ebb471b462 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 18:01:37 -0500 Subject: [PATCH 105/259] reporting tests --- src/components/omniSidebarNav/reporting.js | 16 --------- .../omniSidebarNav/reporting.test.js | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 9696ac8f15..8b13789179 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -1,17 +1 @@ -import { expect, test } from 'vitest'; -// import { -// findSubMenuItemsToUse, -// getGuideDirectory, -// getOmniSidebarActiveSection, -// } from './helpers'; -// import AllGuides from './testfixtures/allGuides.testfixture'; -// import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; -import omniItems from './testfixtures/omniItems.textfixture'; -// import activeSection from './testfixtures/activeSection.testfixture'; -test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { - - - const parentPath = 'test'; - expect(omniItems.length).toEqual(144); -}); diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index e69de29bb2..6973d6d5a6 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -0,0 +1,36 @@ +import { expect, test } from 'vitest'; +// import { +// findSubMenuItemsToUse, +// getGuideDirectory, +// getOmniSidebarActiveSection, +// } from './helpers'; +// import AllGuides from './testfixtures/allGuides.testfixture'; +// import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; +import omniItems from './testfixtures/omniItems.textfixture'; +// import activeSection from './testfixtures/activeSection.testfixture'; + +function flattenOmniItems(menuItems) { + // loop over the omniItems and make a flattened array of all the links + // this function should be recursive. + // return the array + let flattened = []; + for (let item of menuItems) { + flattened.push(item.link); + if (item.children) { + flattened = flattened.concat(flattenOmniItems(item.children)); + } + } + + // return flattened with duplicates removed + return [...new Set(flattened)]; + +// return flattened; +} + + +test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { + + const flattened = flattenOmniItems(omniItems); + // It just so happens that the testfixtures/omniItems.textfixture.js has 31 links. + expect(flattened.length).toEqual(28); +}); From c8dcac550fc5fa5eda39e81584ab311f6727b6f9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 20:56:34 -0500 Subject: [PATCH 106/259] more reporting tools --- .../omniSidebarNav/reporting.test.js | 29 +++++- .../testfixtures/allPaths.testfixture.js | 95 +++++++++++++++++++ 2 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 6973d6d5a6..8bb6bec086 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -7,8 +7,12 @@ import { expect, test } from 'vitest'; // import AllGuides from './testfixtures/allGuides.testfixture'; // import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; import omniItems from './testfixtures/omniItems.textfixture'; +import allPaths from './testfixtures/allPaths.testfixture'; // import activeSection from './testfixtures/activeSection.testfixture'; +const exceptions = ['https://certification.pantheon.io/']; + + function flattenOmniItems(menuItems) { // loop over the omniItems and make a flattened array of all the links // this function should be recursive. @@ -23,8 +27,6 @@ function flattenOmniItems(menuItems) { // return flattened with duplicates removed return [...new Set(flattened)]; - -// return flattened; } @@ -34,3 +36,26 @@ test('Check that the deep array/object of onmiItems can be flattened and contain // It just so happens that the testfixtures/omniItems.textfixture.js has 31 links. expect(flattened.length).toEqual(28); }); + + +test('Check that all items in the flattened menu list are present in the list of all written paths', () => { + const flattened = flattenOmniItems(omniItems); + + // merge allWrittenPaths and exceptions + const allWrittenPathsAndExceptions = allPaths.concat(exceptions); + // Loop over flattened and check that each item is in allWrittenPaths + for (let item of flattened) { + expect(allWrittenPathsAndExceptions).toContain(item); + } +}); + +test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { + const flattened = flattenOmniItems(omniItems); + // merge allWrittenPaths and exceptions + const allWrittenPathsAndExceptions = allPaths.concat(exceptions); + // Loop over flattened and check that each item is in allWrittenPaths + for (let item of flattened) { + expect(allWrittenPathsAndExceptions).toContain(item); + } +}); + diff --git a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js new file mode 100644 index 0000000000..91372e81a6 --- /dev/null +++ b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js @@ -0,0 +1,95 @@ +const allPaths = [ + '/', + '/1-and-1', + '/404.html', + '/404/', + '/add-site', + '/add-site-clone', + '/add-site-custom-upstream', + '/add-site-dashboard', + '/addons', + '/agency-tips', + '/apcu', + '/application-containers', + '/automate', + '/autopilot', + '/basic-troubleshooting', + '/behat', + '/billing', + '/bots-and-indexing', + '/cache', + '/cache-control', + '/caching-advanced-topics', + '/certificate-bundles', + '/certification', + '/certification/about', + '/certification/exam', + '/certification/study-guide', + '/certification/study-guide/automate', + '/certification/study-guide/cdn', + '/certification/study-guide/cms', + '/certification/study-guide/create', + '/certification/study-guide/custom-upstreams', + '/certification/study-guide/deploy', + '/certification/study-guide/extend', + '/certification/study-guide/people', + '/certification/study-guide/platform', + '/certification/study-guide/webops', + '/clamav', + '/clear-caches', + '/client-ip', + '/cloud-optimization', + '/cloudflare', + '/code-of-conduct', + '/composer', + + '/guides/decoupled/drupal-backend-starters', +'/guides/decoupled/drupal-backend-starters/manage-settings', +'/guides/decoupled/drupal-backend-starters/build-hooks', +'/guides/decoupled/drupal-backend-starters/caching', +'/guides/decoupled/drupal-backend-starters/create', +'/guides/decoupled', +'/guides/decoupled/wp-gatsby-frontend-starters', +'/guides/decoupled/wp-gatsby-frontend-starters/build-details', +'/guides/decoupled/wp-gatsby-frontend-starters/manage-settings', +'/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing', +'/guides/decoupled/wp-gatsby-frontend-starters/create', +'/guides/decoupled/wp-nextjs-frontend-starters', +'/guides/decoupled/wp-nextjs-frontend-starters/build-details', +'/guides/decoupled/wp-nextjs-frontend-starters/manage-settings', +'/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing', +'/guides/decoupled/wp-nextjs-frontend-starters/caching', +'/guides/decoupled/wp-nextjs-frontend-starters/create', +'/guides/decoupled/wp-nextjs-frontend-starters/content-preview', +'/guides/decoupled/wp-backend-starters', +'/guides/decoupled/wp-backend-starters/manage-settings', +'/guides/decoupled/wp-backend-starters/build-hooks', +'/guides/decoupled/wp-backend-starters/caching', +'/guides/decoupled/wp-backend-starters/create', +'/guides/decoupled/drupal-nextjs-frontend-starters', +'/guides/decoupled/drupal-nextjs-frontend-starters/build-details', +'/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings', +'/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing', +'/guides/decoupled/drupal-nextjs-frontend-starters/caching', +'/guides/decoupled/drupal-nextjs-frontend-starters/create', +'/guides/decoupled/drupal-nextjs-frontend-starters/content-preview', +'/guides/decoupled/overview', +'/guides/decoupled/overview/considerations', +'/guides/decoupled/overview/manage-settings', +'/guides/decoupled/overview/faq', +'/guides/decoupled/overview/troubleshooting', +'/guides/decoupled/overview/support', +'/guides/decoupled/overview/site', +'/guides/decoupled/overview/site-options', +'/guides/decoupled/overview/v1-pipeline', +'/guides/decoupled/overview/fes-multidev', +'/guides/decoupled/no-starter-kit', +'/guides/decoupled/no-starter-kit/import-repo', +'/guides/decoupled/no-starter-kit/build-details', +'/guides/decoupled/no-starter-kit/manage-settings', +'/guides/decoupled/no-starter-kit/any-framework', +'/guides/decoupled/no-starter-kit/create', +]; + + +export default allPaths; From f77f27a0e00b932249fb9723b7613e08ee3ae429 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 10 Jul 2024 21:09:08 -0500 Subject: [PATCH 107/259] tests for reporting --- .../omniSidebarNav/reporting.test.js | 35 ++++++++++++++++--- .../testfixtures/allPaths.testfixture.js | 3 +- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 8bb6bec086..21073535f5 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -33,7 +33,7 @@ function flattenOmniItems(menuItems) { test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { const flattened = flattenOmniItems(omniItems); - // It just so happens that the testfixtures/omniItems.textfixture.js has 31 links. + // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. expect(flattened.length).toEqual(28); }); @@ -49,13 +49,38 @@ test('Check that all items in the flattened menu list are present in the list of } }); -test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { +function InWrittenPathOrExceptions(linkPath) { + + const flattened = flattenOmniItems(omniItems); + + if (flattened.includes(linkPath) || exceptions.includes(linkPath)) { + return true; + } + else { + return false; + } +} + + +test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { // merge allWrittenPaths and exceptions - const allWrittenPathsAndExceptions = allPaths.concat(exceptions); + + const pathsInMenu = []; + const pathsNotInMenu = []; // Loop over flattened and check that each item is in allWrittenPaths - for (let item of flattened) { - expect(allWrittenPathsAndExceptions).toContain(item); + for (let linkPath of allPaths) { + + if (InWrittenPathOrExceptions(linkPath)) { + pathsInMenu.push(linkPath); + console.log('in menu', linkPath); + } else { + pathsNotInMenu.push(linkPath); + console.log('not in menu', linkPath); + } } + + expect(pathsInMenu.length).toEqual(27); + expect(pathsNotInMenu.length).toEqual(62); }); diff --git a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js index 91372e81a6..c9a1ac994f 100644 --- a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js +++ b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js @@ -42,8 +42,7 @@ const allPaths = [ '/cloudflare', '/code-of-conduct', '/composer', - - '/guides/decoupled/drupal-backend-starters', +'/guides/decoupled/drupal-backend-starters', '/guides/decoupled/drupal-backend-starters/manage-settings', '/guides/decoupled/drupal-backend-starters/build-hooks', '/guides/decoupled/drupal-backend-starters/caching', From c30beb84cde1c196a7b1064e2a14883c60ab966f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 10:36:24 -0500 Subject: [PATCH 108/259] more tests and console logging --- gatsby-node.js | 2 + .../omniSidebarNav/reporting.test.js | 43 ++++++++++++------- .../testfixtures/allPaths.testfixture.js | 6 --- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 05b3b98b2f..d7d24f34be 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -638,6 +638,8 @@ exports.onPostBuild = async ({ graphql, getNodes }) => { //console.log('pages', pages); //loop over pages and log the path + const pagePaths = pages.map(page => page.path); +console.log('pagePaths', pagePaths); pages.forEach(page => { console.log('path', page.path); }); diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 21073535f5..afa7c5e67d 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -10,7 +10,7 @@ import omniItems from './testfixtures/omniItems.textfixture'; import allPaths from './testfixtures/allPaths.testfixture'; // import activeSection from './testfixtures/activeSection.testfixture'; -const exceptions = ['https://certification.pantheon.io/']; +const exceptions = ['https://certification.pantheon.io/', '/404.html']; function flattenOmniItems(menuItems) { @@ -49,12 +49,12 @@ test('Check that all items in the flattened menu list are present in the list of } }); -function InWrittenPathOrExceptions(linkPath) { +function InWrittenPathOrExceptions(linkPath, allowedExceptions = []) { const flattened = flattenOmniItems(omniItems); - if (flattened.includes(linkPath) || exceptions.includes(linkPath)) { + if (flattened.includes(linkPath) || allowedExceptions.includes(linkPath)) { return true; } else { @@ -62,25 +62,36 @@ function InWrittenPathOrExceptions(linkPath) { } } +function calculateNumberOfPathsInMenu(ArrayOfPaths, allowedExceptions = []) { -test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { - // merge allWrittenPaths and exceptions - - const pathsInMenu = []; - const pathsNotInMenu = []; + const pathsInMenuOrExceptions = []; + const pathsNotInMenuOrExceptions = []; // Loop over flattened and check that each item is in allWrittenPaths - for (let linkPath of allPaths) { + for (let linkPath of ArrayOfPaths) { - if (InWrittenPathOrExceptions(linkPath)) { - pathsInMenu.push(linkPath); - console.log('in menu', linkPath); + if (InWrittenPathOrExceptions(linkPath, allowedExceptions)) { + pathsInMenuOrExceptions.push(linkPath); } else { - pathsNotInMenu.push(linkPath); - console.log('not in menu', linkPath); + pathsNotInMenuOrExceptions.push(linkPath); + } + } + const percentageNotInMenu = (pathsNotInMenuOrExceptions.length / allPaths.length) * 100; + return { + 'pathsInMenuOrExceptions': pathsInMenuOrExceptions, + 'pathsNotInMenuOrExceptions': pathsNotInMenuOrExceptions, + 'percentageNotInMenu': percentageNotInMenu, + // Round up to the nearest whole number + 'percentageNotInMenuRoundedUp': Math.ceil(percentageNotInMenu), } } - expect(pathsInMenu.length).toEqual(27); - expect(pathsNotInMenu.length).toEqual(62); +test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { + // merge allWrittenPaths and exceptions + const results = calculateNumberOfPathsInMenu(allPaths, exceptions); + console.log(results.percentageNotInMenu); + expect(results.pathsInMenuOrExceptions.length).toEqual(28); + expect(results.pathsNotInMenuOrExceptions.length).toEqual(55); + expect(results.percentageNotInMenuRoundedUp).toEqual(67); + }); diff --git a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js index c9a1ac994f..7020042c72 100644 --- a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js +++ b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js @@ -36,12 +36,6 @@ const allPaths = [ '/certification/study-guide/platform', '/certification/study-guide/webops', '/clamav', - '/clear-caches', - '/client-ip', - '/cloud-optimization', - '/cloudflare', - '/code-of-conduct', - '/composer', '/guides/decoupled/drupal-backend-starters', '/guides/decoupled/drupal-backend-starters/manage-settings', '/guides/decoupled/drupal-backend-starters/build-hooks', From b7b25ab23a4851a57b4a60a968006dcedab88c2b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 13:12:12 -0500 Subject: [PATCH 109/259] moving reporting function --- src/components/omniSidebarNav/reporting.js | 17 +++++++++++++++++ src/components/omniSidebarNav/reporting.test.js | 17 +---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 8b13789179..07b597e251 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -1 +1,18 @@ + +const flattenOmniItems = (menuItems) => { + // loop over the omniItems and make a flattened array of all the links + // this function should be recursive. + // return the array + let flattened = []; + for (let item of menuItems) { + flattened.push(item.link); + if (item.children) { + flattened = flattened.concat(flattenOmniItems(item.children)); + } + } + // return flattened with duplicates removed + return [...new Set(flattened)]; +} + +export { flattenOmniItems } diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index afa7c5e67d..b5c23616c8 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -7,31 +7,16 @@ import { expect, test } from 'vitest'; // import AllGuides from './testfixtures/allGuides.testfixture'; // import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; import omniItems from './testfixtures/omniItems.textfixture'; +import { flattenOmniItems } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; // import activeSection from './testfixtures/activeSection.testfixture'; const exceptions = ['https://certification.pantheon.io/', '/404.html']; -function flattenOmniItems(menuItems) { - // loop over the omniItems and make a flattened array of all the links - // this function should be recursive. - // return the array - let flattened = []; - for (let item of menuItems) { - flattened.push(item.link); - if (item.children) { - flattened = flattened.concat(flattenOmniItems(item.children)); - } - } - - // return flattened with duplicates removed - return [...new Set(flattened)]; -} test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { - const flattened = flattenOmniItems(omniItems); // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. expect(flattened.length).toEqual(28); From 778e8c3d65a39ece7c0963bb5b341fdcc3bffe90 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 13:37:54 -0500 Subject: [PATCH 110/259] more testing of reporting --- gatsby-node.js | 9 +++++ src/components/omniSidebarNav/index.js | 2 - src/components/omniSidebarNav/reporting.js | 40 ++++++++++++++++++- .../omniSidebarNav/reporting.test.js | 39 +----------------- 4 files changed, 50 insertions(+), 40 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index d7d24f34be..a564157f5d 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -644,6 +644,15 @@ console.log('pagePaths', pagePaths); console.log('path', page.path); }); + // const exceptions = ['https://certification.pantheon.io/', '/404.html']; + // const OmniItems = getOmniItems(); + // const menuReport = calculateNumberOfPathsInMenu(pagePaths, OmniItems, exceptions); + // console.log('menuReport', menuReport); + + fs.writeFile('all-written-paths.txt', JSON.stringify(pagePaths, null, 2), (err) => { + if (err) throw err; + console.log('The file has been saved!'); + }); // // Read the menu links from your menu file (assuming it's a JSON file) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index e45e15b2f7..c1f81d9197 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -17,9 +17,7 @@ const OmniSidebarNav = ({ submenuPathToUse = '', }) => { const OmniItems = getOmniItems(); - console.log('OmniItems', OmniItems); const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); - console.log('menuItems', menuItems); // If the caller is asking for a specific submenu, use that directly. if (submenuPathToUse.length > 0) { diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 07b597e251..015988ec65 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -15,4 +15,42 @@ const flattenOmniItems = (menuItems) => { return [...new Set(flattened)]; } -export { flattenOmniItems } +const InWrittenPathOrExceptions = (linkPath, flattened, allowedExceptions = []) => { + + + + + if (flattened.includes(linkPath) || allowedExceptions.includes(linkPath)) { + return true; + } + else { + return false; + } +} + + +const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions = []) => { + + const pathsInMenuOrExceptions = []; + const pathsNotInMenuOrExceptions = []; + const flattened = flattenOmniItems(omniItems); + // Loop over flattened and check that each item is in allWrittenPaths + for (let linkPath of ArrayOfPaths) { + + if (InWrittenPathOrExceptions(linkPath, flattened, allowedExceptions)) { + pathsInMenuOrExceptions.push(linkPath); + } else { + pathsNotInMenuOrExceptions.push(linkPath); + } + } + const percentageNotInMenu = (pathsNotInMenuOrExceptions.length / ArrayOfPaths.length) * 100; + return { + 'pathsInMenuOrExceptions': pathsInMenuOrExceptions, + 'pathsNotInMenuOrExceptions': pathsNotInMenuOrExceptions, + 'percentageNotInMenu': percentageNotInMenu, + // Round up to the nearest whole number + 'percentageNotInMenuRoundedUp': Math.ceil(percentageNotInMenu), + } +} + +export { flattenOmniItems, exceptions, calculateNumberOfPathsInMenu } diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index b5c23616c8..bc15890b5f 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -7,15 +7,13 @@ import { expect, test } from 'vitest'; // import AllGuides from './testfixtures/allGuides.testfixture'; // import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; import omniItems from './testfixtures/omniItems.textfixture'; -import { flattenOmniItems } from './reporting'; +import { flattenOmniItems, calculateNumberOfPathsInMenu } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; // import activeSection from './testfixtures/activeSection.testfixture'; const exceptions = ['https://certification.pantheon.io/', '/404.html']; - - test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { const flattened = flattenOmniItems(omniItems); // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. @@ -34,45 +32,12 @@ test('Check that all items in the flattened menu list are present in the list of } }); -function InWrittenPathOrExceptions(linkPath, allowedExceptions = []) { - - - const flattened = flattenOmniItems(omniItems); - - if (flattened.includes(linkPath) || allowedExceptions.includes(linkPath)) { - return true; - } - else { - return false; - } -} - -function calculateNumberOfPathsInMenu(ArrayOfPaths, allowedExceptions = []) { - const pathsInMenuOrExceptions = []; - const pathsNotInMenuOrExceptions = []; - // Loop over flattened and check that each item is in allWrittenPaths - for (let linkPath of ArrayOfPaths) { - if (InWrittenPathOrExceptions(linkPath, allowedExceptions)) { - pathsInMenuOrExceptions.push(linkPath); - } else { - pathsNotInMenuOrExceptions.push(linkPath); - } - } - const percentageNotInMenu = (pathsNotInMenuOrExceptions.length / allPaths.length) * 100; - return { - 'pathsInMenuOrExceptions': pathsInMenuOrExceptions, - 'pathsNotInMenuOrExceptions': pathsNotInMenuOrExceptions, - 'percentageNotInMenu': percentageNotInMenu, - // Round up to the nearest whole number - 'percentageNotInMenuRoundedUp': Math.ceil(percentageNotInMenu), - } - } test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { // merge allWrittenPaths and exceptions - const results = calculateNumberOfPathsInMenu(allPaths, exceptions); + const results = calculateNumberOfPathsInMenu(allPaths, omniItems, exceptions); console.log(results.percentageNotInMenu); expect(results.pathsInMenuOrExceptions.length).toEqual(28); expect(results.pathsNotInMenuOrExceptions.length).toEqual(55); From 0d6df2ba0f73dc57656c25886eac17a7ad61da65 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 13:43:41 -0500 Subject: [PATCH 111/259] reporting --- .../omniSidebarNav/all-written-paths.txt | 1492 +++++++++++++++++ src/components/omniSidebarNav/getOmniItems.js | 7 + .../omniSidebarNav/reporting-run.js | 0 src/components/omniSidebarNav/reporting.js | 1 - .../omniSidebarNav/reporting.test.js | 7 - 5 files changed, 1499 insertions(+), 8 deletions(-) create mode 100644 src/components/omniSidebarNav/all-written-paths.txt create mode 100644 src/components/omniSidebarNav/reporting-run.js diff --git a/src/components/omniSidebarNav/all-written-paths.txt b/src/components/omniSidebarNav/all-written-paths.txt new file mode 100644 index 0000000000..96a421c2b8 --- /dev/null +++ b/src/components/omniSidebarNav/all-written-paths.txt @@ -0,0 +1,1492 @@ +[ + "/", + "/1-and-1", + "/404.html", + "/404/", + "/add-site", + "/add-site-clone", + "/add-site-custom-upstream", + "/add-site-dashboard", + "/addons", + "/agency-tips", + "/apcu", + "/application-containers", + "/automate", + "/autopilot", + "/basic-troubleshooting", + "/behat", + "/billing", + "/bots-and-indexing", + "/cache", + "/cache-control", + "/caching-advanced-topics", + "/certificate-bundles", + "/certification", + "/certification/about", + "/certification/exam", + "/certification/study-guide", + "/certification/study-guide/automate", + "/certification/study-guide/cdn", + "/certification/study-guide/cms", + "/certification/study-guide/create", + "/certification/study-guide/custom-upstreams", + "/certification/study-guide/deploy", + "/certification/study-guide/extend", + "/certification/study-guide/people", + "/certification/study-guide/platform", + "/certification/study-guide/webops", + "/clamav", + "/clear-caches", + "/client-ip", + "/cloud-optimization", + "/cloudflare", + "/code-of-conduct", + "/composer", + "/composer-convert", + "/composer-convert-from-empty", + "/configure-dns", + "/connection-modes", + "/content-staging", + "/continuous-integration", + "/contribute", + "/contributors/", + "/contributors/BFTrick", + "/contributors/CdrMarks", + "/contributors/LukasRos", + "/contributors/afragen", + "/contributors/albertcausing", + "/contributors/aleksandrkorolyov", + "/contributors/alexfornuto", + "/contributors/andrewmallis", + "/contributors/ari", + "/contributors/ataylorme", + "/contributors/backlineint", + "/contributors/bmackinney", + "/contributors/bwood", + "/contributors/caitybishop", + "/contributors/calevans", + "/contributors/carl-alberto", + "/contributors/carolynshannon", + "/contributors/ccjjmartin", + "/contributors/cityofoaksdesign", + "/contributors/clintonPantheon", + "/contributors/cobypear", + "/contributors/cteitzel", + "/contributors/curmudgeon", + "/contributors/danielbachhuber", + "/contributors/davidneedham", + "/contributors/dgorton", + "/contributors/digisavvy", + "/contributors/dts", + "/contributors/dustinleblanc", + "/contributors/dwayne", + "/contributors/eabquina", + "/contributors/edwardangert", + "/contributors/eeeschwartz", + "/contributors/erikmathy", + "/contributors/fatimask", + "/contributors/greg-1-anderson", + "/contributors/hckia", + "/contributors/iameap", + "/contributors/jazzsequence", + "/contributors/jessifischer", + "/contributors/jms-pantheon", + "/contributors/joan-ing", + "/contributors/joshkoenig", + "/contributors/jrastaban", + "/contributors/jspellman814", + "/contributors/kate", + "/contributors/katiemac", + "/contributors/kyletaylored", + "/contributors/masonjames", + "/contributors/michellecolon-pantheon", + "/contributors/mmenavas", + "/contributors/mrfelton", + "/contributors/nathantyler", + "/contributors/peter-pantheon", + "/contributors/petersuhm", + "/contributors/populist", + "/contributors/rachelwhitton", + "/contributors/rvtraveller", + "/contributors/ryanwagner", + "/contributors/sarahg", + "/contributors/scottmassey", + "/contributors/sdubois", + "/contributors/sparklingrobots", + "/contributors/stevector", + "/contributors/stovak", + "/contributors/suzannealdrich", + "/contributors/szipfel", + "/contributors/tessak22", + "/contributors/wbconnor", + "/contributors/whitneymeredith", + "/contributors/wordsmither", + "/cookies", + "/core-updates", + "/crisis-response-upstream", + "/custom-certificates", + "/custom-upstreams", + "/customer-scheduled-cron-jobs", + "/cygwin-windows", + "/dashboard", + "/date-and-time", + "/debug-cache", + "/debug-connections", + "/debug-slow-performance", + "/deploybot", + "/develop", + "/develop-drupal", + "/develop-wordpress", + "/dns-made-easy", + "/dns-providers", + "/doc-template", + "/dreamhost", + "/drupal", + "/drupal-10", + "/drupal-advanced-page-cache", + "/drupal-broken-links", + "/drupal-cache", + "/drupal-caching-views", + "/drupal-cloudfront", + "/drupal-commerce", + "/drupal-composer-managed", + "/drupal-configuration-management", + "/drupal-cron", + "/drupal-from-dist", + "/drupal-launch-check", + "/drupal-migration", + "/drupal-phpstorm", + "/drupal-s3", + "/drupal-security-patches", + "/drupal-to-build-tools", + "/drupal-updates", + "/drush", + "/dyn", + "/email", + "/enom", + "/enterprise-billing-center", + "/external-libraries", + "/faq", + "/gandi", + "/get-started", + "/glossary/", + "/go-live", + "/godaddy", + "/google", + "/guides", + "/guides/accessibility", + "/guides/accessibility/best-practices", + "/guides/accessibility/get-started", + "/guides/accessibility/resources", + "/guides/accessibility/tools", + "/guides/account-mgmt", + "/guides/account-mgmt/account", + "/guides/account-mgmt/account/delete", + "/guides/account-mgmt/account/recover", + "/guides/account-mgmt/account/types", + "/guides/account-mgmt/billing", + "/guides/account-mgmt/billing/invoices", + "/guides/account-mgmt/billing/methods", + "/guides/account-mgmt/billing/periods", + "/guides/account-mgmt/billing/transfer", + "/guides/account-mgmt/billing/troubleshooting", + "/guides/account-mgmt/plans", + "/guides/account-mgmt/plans/faq", + "/guides/account-mgmt/plans/pricing", + "/guides/account-mgmt/plans/resources", + "/guides/account-mgmt/plans/site-plans", + "/guides/account-mgmt/plans/workspace-plans", + "/guides/account-mgmt/traffic", + "/guides/account-mgmt/traffic/overages", + "/guides/account-mgmt/traffic/remedy", + "/guides/account-mgmt/workspace-sites-teams", + "/guides/account-mgmt/workspace-sites-teams/sites", + "/guides/account-mgmt/workspace-sites-teams/teams", + "/guides/account-mgmt/workspace-sites-teams/tools", + "/guides/account-mgmt/workspace-sites-teams/workspaces", + "/guides/acquia", + "/guides/acquia/faq", + "/guides/acquia/migrate", + "/guides/acquia/prepare", + "/guides/acquia/troubleshooting", + "/guides/agcdn", + "/guides/agcdn/agcdn-faq", + "/guides/agcdn/agcdn-features", + "/guides/agcdn/agcdn-wafio", + "/guides/agcdn/submit-request", + "/guides/autopilot", + "/guides/autopilot-custom-upstream", + "/guides/autopilot-custom-upstream/autopilot-custom-upstream-config", + "/guides/autopilot-custom-upstream/wp-autopilot-custom-upstream", + "/guides/autopilot/apply-updates/", + "/guides/autopilot/autopilot-deactivate", + "/guides/autopilot/autopilot-faq/", + "/guides/autopilot/autopilot-preconfiguration/", + "/guides/autopilot/enable-autopilot/", + "/guides/autopilot/tests-results/", + "/guides/autopilot/troubleshoot-autopilot/", + "/guides/backups", + "/guides/backups/access-backups", + "/guides/backups/code-archives-backups-log", + "/guides/backups/create-backups", + "/guides/backups/faqs-backups", + "/guides/backups/restore-from-backup", + "/guides/build-tools/", + "/guides/build-tools/configure/", + "/guides/build-tools/create-project/", + "/guides/build-tools/custom-theme/", + "/guides/build-tools/extend/", + "/guides/build-tools/merge/", + "/guides/build-tools/pr-workflow/", + "/guides/build-tools/tests/", + "/guides/build-tools/update/", + "/guides/create-wp-site", + "/guides/custom-upstream", + "/guides/custom-upstream/create-custom-upstream", + "/guides/custom-upstream/delete-custom-upstream", + "/guides/custom-upstream/edit-custom-upstream", + "/guides/custom-upstream/maintain-custom-upstream", + "/guides/custom-upstream/manage-dependencies-custom-upstream", + "/guides/custom-upstream/switch-custom-upstream", + "/guides/custom-upstream/test-custom-upstream", + "/guides/custom-upstream/troubleshooting", + "/guides/decoupled", + "/guides/decoupled/drupal-backend-starters", + "/guides/decoupled/drupal-backend-starters/build-hooks", + "/guides/decoupled/drupal-backend-starters/caching", + "/guides/decoupled/drupal-backend-starters/create", + "/guides/decoupled/drupal-backend-starters/manage-settings", + "/guides/decoupled/drupal-nextjs-frontend-starters", + "/guides/decoupled/drupal-nextjs-frontend-starters/build-details", + "/guides/decoupled/drupal-nextjs-frontend-starters/caching", + "/guides/decoupled/drupal-nextjs-frontend-starters/content-preview", + "/guides/decoupled/drupal-nextjs-frontend-starters/create", + "/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings", + "/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing", + "/guides/decoupled/no-starter-kit", + "/guides/decoupled/no-starter-kit/any-framework", + "/guides/decoupled/no-starter-kit/build-details", + "/guides/decoupled/no-starter-kit/create", + "/guides/decoupled/no-starter-kit/import-repo", + "/guides/decoupled/no-starter-kit/manage-settings", + "/guides/decoupled/overview", + "/guides/decoupled/overview/considerations", + "/guides/decoupled/overview/faq", + "/guides/decoupled/overview/fes-multidev", + "/guides/decoupled/overview/manage-settings", + "/guides/decoupled/overview/site", + "/guides/decoupled/overview/site-options", + "/guides/decoupled/overview/support", + "/guides/decoupled/overview/troubleshooting", + "/guides/decoupled/overview/v1-pipeline", + "/guides/decoupled/wp-backend-starters", + "/guides/decoupled/wp-backend-starters/build-hooks", + "/guides/decoupled/wp-backend-starters/caching", + "/guides/decoupled/wp-backend-starters/create", + "/guides/decoupled/wp-backend-starters/manage-settings", + "/guides/decoupled/wp-gatsby-frontend-starters", + "/guides/decoupled/wp-gatsby-frontend-starters/build-details", + "/guides/decoupled/wp-gatsby-frontend-starters/create", + "/guides/decoupled/wp-gatsby-frontend-starters/manage-settings", + "/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing", + "/guides/decoupled/wp-nextjs-frontend-starters", + "/guides/decoupled/wp-nextjs-frontend-starters/build-details", + "/guides/decoupled/wp-nextjs-frontend-starters/caching", + "/guides/decoupled/wp-nextjs-frontend-starters/content-preview", + "/guides/decoupled/wp-nextjs-frontend-starters/create", + "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings", + "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing", + "/guides/disaster-recovery", + "/guides/disaster-recovery/incident-remediation", + "/guides/disaster-recovery/planning-ahead", + "/guides/disaster-recovery/site-goes-down", + "/guides/domains", + "/guides/domains/custom-domains", + "/guides/domains/dns", + "/guides/domains/domain-hijacking", + "/guides/domains/domains-faq", + "/guides/domains/hosts-file", + "/guides/domains/platform-domains", + "/guides/domains/primary-domain", + "/guides/domains/troubleshooting", + "/guides/domains/vanity-domains", + "/guides/drupal-hosted", + "/guides/drupal-hosted-btworkflow", + "/guides/drupal-hosted-btworkflow/backup-token", + "/guides/drupal-hosted-btworkflow/contrib-custom", + "/guides/drupal-hosted-btworkflow/copy-config", + "/guides/drupal-hosted-btworkflow/database", + "/guides/drupal-hosted-btworkflow/deploy", + "/guides/drupal-hosted-btworkflow/prepare", + "/guides/drupal-hosted-btworkflow/restore-token", + "/guides/drupal-hosted-btworkflow/troubleshooting", + "/guides/drupal-hosted-btworkflow/upload-files", + "/guides/drupal-hosted-createbt", + "/guides/drupal-hosted-createbt/core", + "/guides/drupal-hosted-createbt/deploy", + "/guides/drupal-hosted-createbt/mariadb", + "/guides/drupal-hosted-createbt/prepare", + "/guides/drupal-hosted-createbt/troubleshooting", + "/guides/drupal-hosted-createbt/upgrade", + "/guides/drupal-hosted-createcustom", + "/guides/drupal-hosted-createcustom/contrib-custom", + "/guides/drupal-hosted-createcustom/dependencies", + "/guides/drupal-hosted-createcustom/deploy-dev", + "/guides/drupal-hosted-createcustom/deploy-live", + "/guides/drupal-hosted-createcustom/new-branch", + "/guides/drupal-hosted-createcustom/site-customizations", + "/guides/drupal-hosted-createcustom/troubleshooting", + "/guides/drupal-hosted-createdashboard-set8", + "/guides/drupal-hosted-createdashboard-set8/core-updates", + "/guides/drupal-hosted-createdashboard-set8/deploy", + "/guides/drupal-hosted-createdashboard-set8/drupal-core-version", + "/guides/drupal-hosted-createdashboard-set8/prepare", + "/guides/drupal-hosted-createdashboard-set8/troubleshooting", + "/guides/drupal-hosted-createempty-md", + "/guides/drupal-hosted-createempty-md/change-upstream", + "/guides/drupal-hosted-createempty-md/composer-upstream", + "/guides/drupal-hosted-createempty-md/contrib-custom", + "/guides/drupal-hosted-createempty-md/dependency-versions", + "/guides/drupal-hosted-createempty-md/deploy-dev", + "/guides/drupal-hosted-createempty-md/deploy-live", + "/guides/drupal-hosted-createempty-md/prepare", + "/guides/drupal-hosted-createempty-md/troubleshooting", + "/guides/drupal-hosted-md", + "/guides/drupal-hosted-md/core-updates", + "/guides/drupal-hosted-md/deploy", + "/guides/drupal-hosted-md/drupal-core-version", + "/guides/drupal-hosted-md/prepare", + "/guides/drupal-hosted-md/troubleshooting", + "/guides/drupal-hosted/code", + "/guides/drupal-hosted/create-site", + "/guides/drupal-hosted/deploy", + "/guides/drupal-hosted/prepare", + "/guides/drupal-hosted/troubleshooting", + "/guides/drupal-unhosted", + "/guides/drupal-unhosted-composer", + "/guides/drupal-unhosted-composer/contrib-custom", + "/guides/drupal-unhosted-composer/database", + "/guides/drupal-unhosted-composer/deploy-dev", + "/guides/drupal-unhosted-composer/deploy-live", + "/guides/drupal-unhosted-composer/files", + "/guides/drupal-unhosted-composer/prepare", + "/guides/drupal-unhosted-composer/troubleshooting", + "/guides/drupal-unhosted/add-database", + "/guides/drupal-unhosted/contrib-custom", + "/guides/drupal-unhosted/copy-config", + "/guides/drupal-unhosted/deploy", + "/guides/drupal-unhosted/deploy-dev", + "/guides/drupal-unhosted/prepare", + "/guides/drupal-unhosted/troubleshooting", + "/guides/drupal-unhosted/upload-files", + "/guides/drush", + "/guides/drush/drupal-commandline", + "/guides/drush/drush-aliases", + "/guides/drush/drush-commands", + "/guides/drush/drush-import", + "/guides/drush/drush-known-limitations", + "/guides/drush/drush-sql-queries", + "/guides/drush/drush-versions", + "/guides/drush/troubleshoot-drush", + "/guides/edge-integrations/", + "/guides/edge-integrations/analytics/", + "/guides/edge-integrations/configuration-overview/", + "/guides/edge-integrations/drupal-sdk/", + "/guides/edge-integrations/wordpress-sdk/", + "/guides/enterprise-billing-center", + "/guides/enterprise-billing-center/faq", + "/guides/enterprise-billing-center/interacting", + "/guides/enterprise-billing-center/invoices", + "/guides/enterprise-billing-center/site-portfolio-report", + "/guides/environment-configuration", + "/guides/environment-configuration/environment-indicator", + "/guides/environment-configuration/environment-specific-config", + "/guides/environment-configuration/environment-specific-config-drupal", + "/guides/environment-configuration/read-environment-config", + "/guides/environment-configuration/restore-environment-backup", + "/guides/errors-and-server-responses", + "/guides/errors-and-server-responses/4xx-errors", + "/guides/errors-and-server-responses/5xx-errors", + "/guides/errors-and-server-responses/external-web-service-calls", + "/guides/errors-and-server-responses/overloaded-workers", + "/guides/errors-and-server-responses/retries-server-containers", + "/guides/errors-and-server-responses/slow-and-high-queries", + "/guides/fastly-pantheon", + "/guides/fastly-pantheon/connect-fastly", + "/guides/fastly-pantheon/fastly-amazon-s3", + "/guides/fastly-pantheon/fastly-datadog", + "/guides/fastly-pantheon/fastly-faq", + "/guides/fastly-pantheon/fastly-new-relic", + "/guides/fastly-pantheon/fastly-sftp", + "/guides/fastly-pantheon/fastly-splunk", + "/guides/fastly-pantheon/fastly-syslog", + "/guides/filesystem/", + "/guides/filesystem/batch-files", + "/guides/filesystem/files-directories", + "/guides/filesystem/large-files", + "/guides/filesystem/tmp", + "/guides/filesystem/troubleshooting", + "/guides/frontend-performance", + "/guides/frontend-performance/additional-resources", + "/guides/frontend-performance/caching", + "/guides/frontend-performance/code-css", + "/guides/frontend-performance/diagnostics", + "/guides/frontend-performance/media", + "/guides/frontend-performance/metrics", + "/guides/frontend-performance/queries", + "/guides/frontend-performance/redirects", + "/guides/frontend-performance/static", + "/guides/getstarted", + "/guides/getstarted/addsite", + "/guides/getstarted/launch", + "/guides/getstarted/nextsteps", + "/guides/getstarted/purchase", + "/guides/getstarted/signup", + "/guides/getstarted/team", + "/guides/git", + "/guides/git/collaborative-development", + "/guides/git/faq-git", + "/guides/git/git-config", + "/guides/git/resolve-merge-conflicts", + "/guides/git/troubleshooting", + "/guides/git/undo-commits", + "/guides/git/useful-commands", + "/guides/global-cdn", + "/guides/global-cdn/experience-protection", + "/guides/global-cdn/global-cdn-caching", + "/guides/global-cdn/global-cdn-faq", + "/guides/global-cdn/https", + "/guides/global-cdn/test-global-cdn-caching", + "/guides/guided", + "/guides/guided/faq", + "/guides/guided/migrate", + "/guides/guided/prepare", + "/guides/guided/troubleshooting", + "/guides/integrated-composer", + "/guides/integrated-composer/dependencies", + "/guides/integrated-composer/ic-faq", + "/guides/integrated-composer/ic-support", + "/guides/integrated-composer/ic-troubleshooting", + "/guides/integrated-composer/ic-upstreams", + "/guides/integrated-composer/one-click-updates", + "/guides/integrated-composer/private-repo-package", + "/guides/kinsta", + "/guides/kinsta/faq", + "/guides/kinsta/migrate", + "/guides/kinsta/prepare", + "/guides/kinsta/troubleshooting", + "/guides/launch/", + "/guides/launch/advanced-curls/", + "/guides/launch/configure-dns/", + "/guides/launch/create-site-launch", + "/guides/launch/domains/", + "/guides/launch/launch-check/", + "/guides/launch/next-steps/", + "/guides/launch/plans/", + "/guides/launch/redirects", + "/guides/local-development", + "/guides/local-development/configuration", + "/guides/local-development/continuous-integration", + "/guides/local-development/cygwin-windows", + "/guides/local-development/ddev", + "/guides/local-development/drupal-phpstorm", + "/guides/local-development/graphql-requests", + "/guides/local-development/jenkins", + "/guides/local-development/lando-wordpress", + "/guides/local-development/visual-studio-code", + "/guides/local-development/wordpress-phpstorm", + "/guides/logs-pantheon", + "/guides/logs-pantheon/access-logs", + "/guides/logs-pantheon/automate-log-downloads", + "/guides/logs-pantheon/faq-logs", + "/guides/logs-pantheon/nginx-access-logs", + "/guides/manual-d8-composer-to-d8", + "/guides/manual-d8-composer-to-d8/contrib-custom", + "/guides/manual-d8-composer-to-d8/database", + "/guides/manual-d8-composer-to-d8/deploy-dev", + "/guides/manual-d8-composer-to-d8/deploy-live", + "/guides/manual-d8-composer-to-d8/files", + "/guides/manual-d8-composer-to-d8/prepare", + "/guides/manual-d8-composer-to-d8/troubleshooting", + "/guides/mariadb-mysql", + "/guides/mariadb-mysql/database-connection-errors", + "/guides/mariadb-mysql/database-workflow-tool", + "/guides/mariadb-mysql/kill-mysql-queries", + "/guides/mariadb-mysql/mariadb-mysql-faq", + "/guides/mariadb-mysql/myisam-to-innodb", + "/guides/mariadb-mysql/mysql-access", + "/guides/mariadb-mysql/mysql-slow-log", + "/guides/mariadb-mysql/mysql-workbench", + "/guides/multidev", + "/guides/multidev/access-branch", + "/guides/multidev/clone-content", + "/guides/multidev/compare-environments", + "/guides/multidev/create-multidev", + "/guides/multidev/delete-multidev", + "/guides/multidev/edit-multidev", + "/guides/multidev/multidev-faq", + "/guides/multisite/", + "/guides/multisite/config/", + "/guides/multisite/considerations/", + "/guides/multisite/debug/", + "/guides/multisite/multisite-governance/", + "/guides/multisite/search-replace/", + "/guides/multisite/workflows/", + "/guides/new-relic", + "/guides/new-relic/activate-new-relic", + "/guides/new-relic/debug-mysql-new-relic", + "/guides/new-relic/monitor-new-relic", + "/guides/new-relic/new-relic-faq", + "/guides/new-relic/new-relic-quicksilver", + "/guides/new-relic/troubleshoot-new-relic", + "/guides/pagely", + "/guides/pagely/faq", + "/guides/pagely/migrate", + "/guides/pagely/prepare", + "/guides/pagely/troubleshooting", + "/guides/pagerduty/", + "/guides/pagerduty/monitor/", + "/guides/pagerduty/next-steps/", + "/guides/pagerduty/notify/", + "/guides/pagerduty/schedule/", + "/guides/pagerduty/slack/", + "/guides/php", + "/guides/php/deprecated-constructor-notices", + "/guides/php/php-errors", + "/guides/php/php-slow-log", + "/guides/php/php-versions", + "/guides/php/settings-php", + "/guides/php/wordpress-sessions", + "/guides/php/wp-config-php", + "/guides/platform-considerations", + "/guides/platform-considerations/media-email-support", + "/guides/platform-considerations/php-platform", + "/guides/platform-considerations/platform-security", + "/guides/platform-considerations/platform-site-info", + "/guides/platform-considerations/terminus-platform", + "/guides/platformsh", + "/guides/platformsh/faq", + "/guides/platformsh/migrate", + "/guides/platformsh/prepare", + "/guides/platformsh/troubleshooting", + "/guides/professional-services", + "/guides/professional-services/advanced-global-cdn", + "/guides/professional-services/application-performance", + "/guides/professional-services/managed-updates", + "/guides/professional-services/onboarding", + "/guides/professional-services/website-migration-service", + "/guides/quicksilver", + "/guides/quicksilver/asana", + "/guides/quicksilver/hooks", + "/guides/quicksilver/install-script", + "/guides/quicksilver/jira", + "/guides/quicksilver/trello", + "/guides/quicksilver/troubleshoot-quicksilver", + "/guides/quicksilver/variables", + "/guides/redirect", + "/guides/redirect/advanced", + "/guides/redirect/https/", + "/guides/redirect/mobile", + "/guides/redirect/php", + "/guides/redirect/primary-domain", + "/guides/secure-development", + "/guides/secure-development/phpinfo", + "/guides/secure-development/private-paths", + "/guides/secure-development/secure-integration", + "/guides/secure-development/secure-runtime-access", + "/guides/secure-development/security-tool", + "/guides/secure-development/ssh-tunnels", + "/guides/secure-development/two-factor-authentication", + "/guides/security", + "/guides/sftp", + "/guides/sftp/port-2222", + "/guides/sftp/rsync-and-sftp", + "/guides/sftp/sftp-connection-info", + "/guides/sftp/sftp-development", + "/guides/sftp/troubleshooting-sftp", + "/guides/sftp/vscode-sftp", + "/guides/sftp/winscp", + "/guides/solr-drupal", + "/guides/solr-drupal/solr-drupal", + "/guides/solr-drupal/solr-drupal-7", + "/guides/sso", + "/guides/sso/shibboleth-sso", + "/guides/sso/sso", + "/guides/sso/sso-organizations", + "/guides/support/", + "/guides/support/contact-support/", + "/guides/support/curl", + "/guides/support/early-access/", + "/guides/support/faq/", + "/guides/support/har/", + "/guides/support/support-ticket/", + "/guides/woocommerce/", + "/guides/woocommerce/commit/", + "/guides/woocommerce/configure/", + "/guides/woocommerce/develop/", + "/guides/woocommerce/initialize-prod/", + "/guides/woocommerce/launch/", + "/guides/woocommerce/store-setup/", + "/guides/wordpress-composer", + "/guides/wordpress-composer/create-wp-site-composer-ci-auto-test", + "/guides/wordpress-composer/pre-ga", + "/guides/wordpress-composer/wordpress-composer-managed", + "/guides/wordpress-composer/wordpress-ic", + "/guides/wordpress-configurations", + "/guides/wordpress-configurations/mu-plugin", + "/guides/wordpress-configurations/plugins", + "/guides/wordpress-configurations/sendgrid-wordpress-wp-mail-smtp", + "/guides/wordpress-configurations/wordpress-cache-plugin", + "/guides/wordpress-configurations/wordpress-custom-code", + "/guides/wordpress-configurations/wordpress-font-library", + "/guides/wordpress-configurations/wp-cfm", + "/guides/wordpress-developer", + "/guides/wordpress-developer/performant-translations", + "/guides/wordpress-developer/wordpress-best-practices", + "/guides/wordpress-developer/wordpress-broken-links", + "/guides/wordpress-developer/wordpress-cron", + "/guides/wordpress-developer/wordpress-development-versions", + "/guides/wordpress-developer/wordpress-gcs", + "/guides/wordpress-developer/wordpress-login-attacks", + "/guides/wordpress-developer/wordpress-s3", + "/guides/wordpress-developer/wordpress-secrets-management", + "/guides/wordpress-developer/wordpress-solr", + "/guides/wordpress-developer/xml-rpc-attacks", + "/guides/wordpress-git/", + "/guides/wordpress-git/media/", + "/guides/wordpress-git/next-steps/", + "/guides/wordpress-git/plugins/", + "/guides/wordpress-git/remove-editor/", + "/guides/wordpress-git/themes/", + "/guides/wordpress-google-sso/", + "/guides/wordpress-google-sso/access-and-mappings", + "/guides/wordpress-google-sso/advanced-configuration", + "/guides/wordpress-google-sso/going-live", + "/guides/wordpress-google-sso/install/", + "/guides/wordpress-google-sso/saml-app/", + "/guides/wordpress-pantheon/", + "/guides/wordpress-pantheon/create-wp-site", + "/guides/wordpress-pantheon/migrate-existing-wp-site", + "/guides/wordpress-pantheon/plugins", + "/guides/wordpress-pantheon/plugins-recommended", + "/guides/wordpress-pantheon/troubleshooting", + "/guides/wordpress-pantheon/wordpress-developers", + "/guides/wordpress-pantheon/wordpress-launch-check", + "/guides/wordpress-pantheon/wp-content-management", + "/guides/wordpress-pantheon/wp-optimization", + "/guides/wordpress-pantheon/wp-security", + "/guides/wordpressvip", + "/guides/wordpressvip/faq", + "/guides/wordpressvip/migrate", + "/guides/wordpressvip/prepare", + "/guides/wordpressvip/troubleshooting", + "/guides/wp-cli", + "/guides/wp-cli/install-wp-plugins-themes", + "/guides/wp-cli/wp-cli-global-parameters", + "/guides/wp-cli/wp-cli-pantheon-commands", + "/guides/wp-cli/wp-cli-sql-php-subcommands", + "/guides/wp-cli/wp-cli-troubleshoot", + "/guides/wpengine", + "/guides/wpengine/faq", + "/guides/wpengine/migrate", + "/guides/wpengine/prepare", + "/guides/wpengine/troubleshooting", + "/headless", + "/horizontal-scalability", + "/hotfixes", + "/http-to-https", + "/iframeembeds/certification/pressure-on-developers", + "/iframeembeds/certification/pressure-on-it", + "/iframeembeds/certification/what-is-webops", + "/iframeembeds/certification/what-problems-does-webops-solve", + "/inclusive-language", + "/integrations", + "/jenkins", + "/ldap-and-ldaps", + "/load-and-performance-testing", + "/load-testing-with-blazemeter", + "/lockr", + "/machine-tokens", + "/manage", + "/migrate-cpanel", + "/migrate-manual", + "/migrate-wordpress", + "/migrate-wordpress-multisite", + "/mime-types", + "/modules", + "/modules-known-issues", + "/modules-plugins-known-issues", + "/multizone-failover", + "/namecheap", + "/nested-docroot", + "/network-solutions", + "/newrelic", + "/object-cache", + "/object-cache/cli", + "/object-cache/drupal", + "/object-cache/errors", + "/object-cache/faq", + "/object-cache/remove", + "/object-cache/wordpress", + "/object-cache/wordpress-deprecated", + "/opensolr", + "/optimize-wp-options-table-autoloaded-data", + "/oss-support-levels", + "/outgoing-ips", + "/overview", + "/pantheon-community", + "/pantheon-workflow", + "/pantheon-yml", + "/pantheon-yml-overview", + "/pantheon_stripped", + "/partial-composer", + "/performance", + "/personal-settings", + "/pingdom-uptime-check", + "/pivotal-tracker", + "/platform", + "/platform-notifications", + "/platform-upgrade", + "/plugins-known-issues", + "/products", + "/regions", + "/relaunch", + "/release-notes/", + "/release-notes/2015/01/concerned-about-cve-2015-0235-aka-ghost", + "/release-notes/2015/01/php-upgrade", + "/release-notes/2015/01/supporting-orgs-multi-org", + "/release-notes/2015/02/documentation", + "/release-notes/2015/02/new-wordpress-upstream", + "/release-notes/2015/02/terminus-0-5-released", + "/release-notes/2015/02/try-drupal-8-beta", + "/release-notes/2015/02/varnish-testing-harness", + "/release-notes/2015/03/dashboard-optimization", + "/release-notes/2015/03/documentation", + "/release-notes/2015/03/drupal-7-35-update", + "/release-notes/2015/03/terminus-improvement", + "/release-notes/2015/04/documentation", + "/release-notes/2015/04/edge-cache-configuration-update", + "/release-notes/2015/04/fedora-update", + "/release-notes/2015/04/saml-users", + "/release-notes/2015/04/styx-to-appserver-encryption", + "/release-notes/2015/04/wordpress-core-updates-to-4-2-1", + "/release-notes/2015/04/wordpress-launch-check", + "/release-notes/2015/05/barrel-roll-reboots", + "/release-notes/2015/05/dashboard-load-times", + "/release-notes/2015/05/free-backups", + "/release-notes/2015/05/webinars", + "/release-notes/2015/06/documentation", + "/release-notes/2015/06/improved-workflows-notifications", + "/release-notes/2015/06/single-sign-on-sso-release", + "/release-notes/2015/06/walkme-tours", + "/release-notes/2015/07/documentation", + "/release-notes/2015/07/kalabox-2-pantheon", + "/release-notes/2015/07/multidev-ui-updated", + "/release-notes/2015/07/scripts-to-quickly-make-a-drupal-7-project-using-composer", + "/release-notes/2015/07/wordpress-4-2-3-is-live", + "/release-notes/2015/08/documentation", + "/release-notes/2015/08/nginx-conf-update-for-photon", + "/release-notes/2015/08/php-5-5-opcache-revalidate-freq-value-is-now-set-to-zero", + "/release-notes/2015/08/php-default-arg-separator", + "/release-notes/2015/08/saint-mode-saves-your-images", + "/release-notes/2015/08/terminus-cli-version-0-7-1", + "/release-notes/2015/09/documentation", + "/release-notes/2015/09/login-destination", + "/release-notes/2015/09/pantheon-enterprise-is-now-available", + "/release-notes/2015/09/terminus-0-8-0", + "/release-notes/2015/10/documentation", + "/release-notes/2015/10/drupal-7-defaults-to-php-5-5", + "/release-notes/2015/10/drupal-8-rc2-released-and-available", + "/release-notes/2015/10/edge-cache-upgraded-to-varnish-4", + "/release-notes/2015/10/organization-renaming", + "/release-notes/2015/10/terminus-0-9-2-released", + "/release-notes/2015/10/terminus-commands-updated", + "/release-notes/2015/10/wp-cli-search-replace", + "/release-notes/2015/12/documentation", + "/release-notes/2016/01/documentation", + "/release-notes/2016/01/machine-token-authentication", + "/release-notes/2016/01/pantheon-hud-plugin", + "/release-notes/2016/01/quicksilver-platform-hooks-are-now-available", + "/release-notes/2016/01/terminus-0-10-2-released", + "/release-notes/2016/02/cloud-integration-tools", + "/release-notes/2016/02/code-archives", + "/release-notes/2016/02/documentation", + "/release-notes/2016/02/end-of-life-for-drupal-6", + "/release-notes/2016/02/platform-domains", + "/release-notes/2016/02/terminus-0-10-2-released", + "/release-notes/2016/02/wordpress-at-scale", + "/release-notes/2016/02/wordpress-core-updates", + "/release-notes/2016/03/documentation", + "/release-notes/2016/03/freezing-inactive-sites", + "/release-notes/2016/03/terminus-0-11-0-released", + "/release-notes/2016/04/documentation", + "/release-notes/2016/04/new-terminus-plugins-for-quicksilver-integrations", + "/release-notes/2016/04/terminus-0-11-1-released", + "/release-notes/2016/04/workflow-tab-renamed-to-databases-files", + "/release-notes/2016/05/pantheon-enterprise-support-now-available", + "/release-notes/2016/05/terminus-0-11-1", + "/release-notes/2016/06/drupal-8-site-imports-now-supported", + "/release-notes/2016/06/new-migration-button-on-the-dashboard", + "/release-notes/2016/06/new-reliable-screenshots-microservice-&-user-dashboard-design-update", + "/release-notes/2016/06/new-relic-pro", + "/release-notes/2016/07/documentation", + "/release-notes/2016/07/drupal-contrib-module-security-updates", + "/release-notes/2016/07/migrating-wordpress-sites-to-pantheon-just-got-easier", + "/release-notes/2016/07/terminus-0-11-2", + "/release-notes/2016/07/tls-1-0-deprecated", + "/release-notes/2016/08/advanced-site-configurations-available", + "/release-notes/2016/08/documentation", + "/release-notes/2016/08/new-hooks-for-quicksilver-platform-integration", + "/release-notes/2016/08/php-5-6-7-0-released", + "/release-notes/2016/08/solr-power-for-wordpress-0-5-update", + "/release-notes/2016/08/terminus-0-12-0", + "/release-notes/2016/09/bug-fixes", + "/release-notes/2016/09/dashboard-design-updates", + "/release-notes/2016/09/documentation", + "/release-notes/2016/09/drush_version-is-now-managed-in-pantheon-yml", + "/release-notes/2016/09/kalabox-2-0-is-available", + "/release-notes/2016/09/terminus-0-13-2", + "/release-notes/2016/10/custom-domains-in-multidev-environments", + "/release-notes/2016/10/documentation", + "/release-notes/2016/10/solr-power-for-wordpress-0-6-update", + "/release-notes/2016/10/terminus-1-0-alpha-release", + "/release-notes/2016/11/chat-support", + "/release-notes/2016/11/drupal-6-long-term-support-(lts)-partners", + "/release-notes/2016/11/drupal-core-updates", + "/release-notes/2016/11/early-release-pantheon-advanced-page-cache-plugin", + "/release-notes/2016/11/new-relic-agent-upgrade", + "/release-notes/2016/11/php-upgrade", + "/release-notes/2016/11/platform-security-update", + "/release-notes/2016/11/terminus-0-13-4-and-terminus-1-0-alpha", + "/release-notes/2016/12/documentation", + "/release-notes/2016/12/drupal-core-updates", + "/release-notes/2016/12/privacy-shield-framework-compliance", + "/release-notes/2016/12/supported-mime-types", + "/release-notes/2016/12/terminus-manual-and-terminus-1-0-beta-releases", + "/release-notes/2016/12/upgraded-wp-cli", + "/release-notes/2016/12/wordpress-4-7-core-update", + "/release-notes/2016/12/wordpress-4-7-security-patches", + "/release-notes/2017/01/drupal-8-2-5-upgrade", + "/release-notes/2017/01/terminus-1-0", + "/release-notes/2017/01/terminus-plugins", + "/release-notes/2017/01/wordpress-4-7-2-upgrade", + "/release-notes/2017/02/documentation", + "/release-notes/2017/02/drupal-core-upgrade", + "/release-notes/2017/02/patched-for-linux-kernel-vulnerability", + "/release-notes/2017/02/php-upgrade", + "/release-notes/2017/03/documentation", + "/release-notes/2017/03/drupal-core-upgrades", + "/release-notes/2017/03/wp-cli-upgrade", + "/release-notes/2017/04/bug-fixes", + "/release-notes/2017/04/documentation", + "/release-notes/2017/04/drupal-core-upgrades", + "/release-notes/2017/04/terminus-1-3-0", + "/release-notes/2017/04/wordpress-upgrades", + "/release-notes/2017/05/documentation", + "/release-notes/2017/05/drupal-core-upgrades", + "/release-notes/2017/05/php-upgrade", + "/release-notes/2017/05/platform-security", + "/release-notes/2017/06/core-upgrades", + "/release-notes/2017/06/default-php-versions", + "/release-notes/2017/06/documentation", + "/release-notes/2017/06/new-relic", + "/release-notes/2017/06/pantheon-upstream-configuration", + "/release-notes/2017/06/terminus-1-4-0", + "/release-notes/2017/06/wp-cli", + "/release-notes/2017/07/custom-upstreams-self-serve-github-and-bitbucket", + "/release-notes/2017/07/documentation", + "/release-notes/2017/07/drupal-8-with-redirect-and-simple-xml-sitemap-modules-now-supported", + "/release-notes/2017/07/drupal-core-upgrades", + "/release-notes/2017/07/nginx-web-server-integer-overflow-vulnerability-mitigated", + "/release-notes/2017/07/terminus-1-4-1", + "/release-notes/2017/08/documentation", + "/release-notes/2017/08/drupal-core-upgrades", + "/release-notes/2017/08/global-cdn-surrogate-key-cache-clearing-api-improvement", + "/release-notes/2017/08/php-upgrades", + "/release-notes/2017/08/terminus-1-5", + "/release-notes/2017/08/wordpress-core-upgrades", + "/release-notes/2017/09/documentation", + "/release-notes/2017/09/new-relic", + "/release-notes/2017/09/wp-cli", + "/release-notes/2017/09/wp-native-php-sessions", + "/release-notes/2017/10/custom-upstreams", + "/release-notes/2017/10/documentation", + "/release-notes/2017/10/php-7-1-&-ioncube-decoder", + "/release-notes/2017/10/terminus-1-6", + "/release-notes/2017/10/webp-image-support", + "/release-notes/2017/10/wordpress-core-upgrades", + "/release-notes/2017/11/documentation", + "/release-notes/2017/11/drupal-core-upgrades", + "/release-notes/2017/11/site-dashboard-update", + "/release-notes/2017/11/sites-requiring-upgrade-to-global-cdn-now-shown-on-user-&-org-dashboards", + "/release-notes/2017/11/wordpress-core-upgrades", + "/release-notes/2017/12/bug-fixes-and-improvements", + "/release-notes/2017/12/documentation", + "/release-notes/2017/12/drupal-core-upgrades", + "/release-notes/2017/12/php-upgrades", + "/release-notes/2018/01/documentation", + "/release-notes/2018/01/drupal-core-upgrades", + "/release-notes/2018/01/launch-check-now-supports-drupal-8", + "/release-notes/2018/01/new-relic-php-7-2-support", + "/release-notes/2018/01/pantheon-moves-to-google-cloud-platform", + "/release-notes/2018/01/php-upgrades", + "/release-notes/2018/01/registry-rebuild-upgrade", + "/release-notes/2018/01/wordpress-core-upgrade", + "/release-notes/2018/01/wp-cli-upgrades", + "/release-notes/2018/02/custom-upstream-quicksilver-enhancement", + "/release-notes/2018/02/drupal-core-upgrades", + "/release-notes/2018/02/legacy-ssl-add-on-price-increase", + "/release-notes/2018/02/php-updates", + "/release-notes/2018/02/wordpress-core-upgrade", + "/release-notes/2018/03/drupal-core-upgrades", + "/release-notes/2018/03/global-cdn-surrogate-key-raw-disabled-by-default", + "/release-notes/2018/03/php-security-upgrades", + "/release-notes/2018/03/terminus-1-8", + "/release-notes/2018/03/wordpress-core-upgrade", + "/release-notes/2018/04/documentation", + "/release-notes/2018/04/drupal-core-upgrades", + "/release-notes/2018/04/ocsp-stapling-enabled-on-global-cdn", + "/release-notes/2018/04/testing-seo-now-supported-on-platform-domains", + "/release-notes/2018/04/wordpress-core-upgrade", + "/release-notes/2018/05/documentation", + "/release-notes/2018/05/duplicate-pantheon-sites-with-terminus-site-clone", + "/release-notes/2018/05/filemount-configuration", + "/release-notes/2018/05/php-7-2-ms-sql-support", + "/release-notes/2018/05/php-updates", + "/release-notes/2018/05/upgrade-to-php-7-1-or-7-2-before-december", + "/release-notes/2018/05/wordpress-core-upgrade", + "/release-notes/2018/07/crawler-access-to-platform-domains", + "/release-notes/2018/07/documentation", + "/release-notes/2018/07/drupal-8-5-5", + "/release-notes/2018/07/terminus-1-8-1", + "/release-notes/2018/07/wordpress-4-9-7", + "/release-notes/2018/08/apache-tika-update", + "/release-notes/2018/08/documentation", + "/release-notes/2018/08/https-provisioning-accelerated", + "/release-notes/2018/08/php-upgrades", + "/release-notes/2018/09/drupal-7-59", + "/release-notes/2018/09/drupal-8-5-6", + "/release-notes/2018/09/new-php-default-versions-for-pantheon-maintained-upstreams", + "/release-notes/2018/09/php-upgrades", + "/release-notes/2018/09/wordpress-4-9-8", + "/release-notes/2018/10/documentation", + "/release-notes/2018/10/drupal-8-6-1", + "/release-notes/2018/10/drupal-maintenance-mode-imagecache-fix", + "/release-notes/2018/10/improve-email-deliverability-with-spf-records", + "/release-notes/2018/10/php-version-updates", + "/release-notes/2018/11/drupal-7-60", + "/release-notes/2018/11/drupal-8-6-2", + "/release-notes/2018/11/php-7-2-11-and-7-1-23", + "/release-notes/2018/12/documentation", + "/release-notes/2018/12/drupal-8-6-3-and-7-61-now-available-as-1-click-updates", + "/release-notes/2018/12/multidev-access", + "/release-notes/2018/12/partner-program", + "/release-notes/2018/12/php-updates", + "/release-notes/2019/01/disaster-recovery", + "/release-notes/2019/01/documentation", + "/release-notes/2019/01/drupal-8-6-5-and-wordpress-5-0-1-now-available-as-1-click-updates", + "/release-notes/2019/02/drupal-8-6-7,-7-63,-and-wordpress-5-0-3-now-available-as-1-click-updates", + "/release-notes/2019/02/new-relic-php-agent-upgraded", + "/release-notes/2019/02/php-7-2-and-7-1-updated", + "/release-notes/2019/02/php-intl-extension-now-available", + "/release-notes/2019/03/documentation", + "/release-notes/2019/03/drupal-8-6-10,-7-64,-and-wordpress-5-1-now-available-as-1-click-updates", + "/release-notes/2019/03/eu-region-early-access", + "/release-notes/2019/03/php-7-2-updated", + "/release-notes/2019/03/terminus-2-0-released!", + "/release-notes/2019/03/wordpress-launch-check-shows-vulnerability-info", + "/release-notes/2019/04/community-updates", + "/release-notes/2019/04/documentation", + "/release-notes/2019/04/drupal-core-upgrades", + "/release-notes/2019/04/pantheon-heroes", + "/release-notes/2019/04/wordpress-5-1-1", + "/release-notes/2019/05/disaster-recovery-now-supports-redis-cache", + "/release-notes/2019/05/drupal-core-updates-available", + "/release-notes/2019/05/european-union-region-in-limited-availability", + "/release-notes/2019/05/new-relic-agent-upgraded", + "/release-notes/2019/05/pantheon-heroes", + "/release-notes/2019/05/php-7-3-default-for-drupal-8-and-wordpress-sites", + "/release-notes/2019/05/site-files-and-backups-moved-to-google-cloud", + "/release-notes/2019/05/terminus-2-0-1-release", + "/release-notes/2019/06/australia-and-canada-regions-in-limited-availability", + "/release-notes/2019/06/drupal-core-updates-available", + "/release-notes/2019/06/php-7-1,-7-2,-and-7-3-updated", + "/release-notes/2019/06/wordpress-5-2-1", + "/release-notes/2019/07/dns-recommendations-update", + "/release-notes/2019/07/drupal-core-updates-available", + "/release-notes/2019/07/general-availability-for-new-regions", + "/release-notes/2019/07/more-consistent-cron-runs", + "/release-notes/2019/07/wordpress-5-2-2-update-available", + "/release-notes/2019/08/drupal-core-updates-available", + "/release-notes/2019/08/new-relic-php-agent-upgrade", + "/release-notes/2019/09/drupal-core-updates-available", + "/release-notes/2019/09/php-7-1,-7-2-and-7-3-updated", + "/release-notes/2019/10/documentation", + "/release-notes/2019/10/drupal-core-updates-available", + "/release-notes/2019/10/pantheon-now-enforces-https-by-default", + "/release-notes/2019/10/platform-robots-txt-now-allows-swiftbot", + "/release-notes/2019/10/wordpress-5-2-3", + "/release-notes/2019/11/documentation", + "/release-notes/2019/11/drupal-8-7-8", + "/release-notes/2019/11/pantheon-localdev-0-5-6", + "/release-notes/2019/11/php-7-1,-7-2,-and-7-3-updated", + "/release-notes/2019/11/wordpress-5-2-4", + "/release-notes/2019/12/documentation", + "/release-notes/2019/12/drupal-8-7-10", + "/release-notes/2019/12/php-7-2,-and-7-3-updated", + "/release-notes/2019/12/wordpress-5-3", + "/release-notes/2020/01/drupal-8-8-1-and-7-69", + "/release-notes/2020/01/localdev-0-6-0-beta-9-released", + "/release-notes/2020/01/php-7-2-and-7-3-updated", + "/release-notes/2020/01/security-enhancement-outgoing-udp-traffic-blocked", + "/release-notes/2020/01/terminus-now-runs-site-local-drush-&-wp-cli", + "/release-notes/2020/01/wordpress-5-3-2", + "/release-notes/2020/02/drush-8-3-2-released", + "/release-notes/2020/02/localdev-0-7-0-released", + "/release-notes/2020/02/php-7-3-14-and-7-2-27-updated", + "/release-notes/2020/02/terminus-2-3-0-released", + "/release-notes/2020/03/advanced-global-cdn", + "/release-notes/2020/03/documentation", + "/release-notes/2020/03/drupal-8-8-2-released", + "/release-notes/2020/03/drush-10", + "/release-notes/2020/03/global-cdn-network-expansion", + "/release-notes/2020/04/documentation", + "/release-notes/2020/04/drupal-8-8-4", + "/release-notes/2020/04/localdev-0-9-3", + "/release-notes/2020/04/new-relic-agent-9-7-0-258", + "/release-notes/2020/04/wp-cli-2-4-0", + "/release-notes/2020/05/documentation", + "/release-notes/2020/05/drupal-8-8-5", + "/release-notes/2020/05/early-access-to-drupal-9-with-integrated-composer", + "/release-notes/2020/05/localdev-0-10-0", + "/release-notes/2020/05/multidev-cloud-environments-offer", + "/release-notes/2020/05/wordpress-5-4-1", + "/release-notes/2020/06/documentation", + "/release-notes/2020/06/drupal-7-70", + "/release-notes/2020/06/drupal-8-8-6", + "/release-notes/2020/06/drupal-9-0", + "/release-notes/2020/06/global-cdn", + "/release-notes/2020/06/go-live-enhancements", + "/release-notes/2020/06/localdev-0-10-0", + "/release-notes/2020/06/resources-to-navigate-covid-19", + "/release-notes/2020/07/documentation", + "/release-notes/2020/07/drupal-8-9-1,-8-8-8,-and-7-72", + "/release-notes/2020/07/drupal-9-0", + "/release-notes/2020/07/localdev-0-10-1", + "/release-notes/2020/07/multidev-and-covid-response-site-offers", + "/release-notes/2020/07/terminus-2-4-0", + "/release-notes/2020/07/traffic-metrics", + "/release-notes/2020/07/wordpress-5-4-2", + "/release-notes/2020/08/dedicated-certificates-&-updated-go-live", + "/release-notes/2020/08/drupal-8-9-2", + "/release-notes/2020/08/drupal-9-0", + "/release-notes/2020/08/multidev-and-covid-response-site-offers", + "/release-notes/2020/09/drupal-8-9-3", + "/release-notes/2020/09/drupal-9-0", + "/release-notes/2020/09/wordpress-5-5", + "/release-notes/2020/10/documentation", + "/release-notes/2020/10/drupal-7-73", + "/release-notes/2020/10/drupal-8-8-10", + "/release-notes/2020/10/drupal-8-9-6", + "/release-notes/2020/10/drupal-9-preview-multidev-script", + "/release-notes/2020/10/php-7-3-22-and-7-4-10-updated", + "/release-notes/2020/10/wordpress-5-5-1", + "/release-notes/2020/11/documentation", + "/release-notes/2020/11/drupal-8-9-7", + "/release-notes/2020/11/drupal-9", + "/release-notes/2020/12/documentation", + "/release-notes/2020/12/drupal-7-74", + "/release-notes/2020/12/drupal-8-9-9", + "/release-notes/2020/12/drupal-9-with-one-click-composer-updates", + "/release-notes/2020/12/wordpress-5-5-3", + "/release-notes/2021/01/documentation", + "/release-notes/2021/01/drupal-8-9-11", + "/release-notes/2021/01/drupal-9-with-one-click-composer-updates", + "/release-notes/2021/01/wordpress-5-6", + "/release-notes/2021/02/documentation", + "/release-notes/2021/02/drupal-7-78", + "/release-notes/2021/02/drupal-8-9-13", + "/release-notes/2021/02/drupal-9-with-one-click-composer-updates", + "/release-notes/2021/02/localdev-1-0-1", + "/release-notes/2021/03/documentation", + "/release-notes/2021/03/drupal-9-with-one-click-composer-updates", + "/release-notes/2021/03/wordpress-5-6-1", + "/release-notes/2021/04/convert-your-drupal-8-pantheon-site-to-drupal-9-with-integrated-composer", + "/release-notes/2021/04/documentation", + "/release-notes/2021/04/wordpress-5-7", + "/release-notes/2021/05/documentation", + "/release-notes/2021/05/drupal-7-80", + "/release-notes/2021/05/drupal-8-9-14", + "/release-notes/2021/05/drupal-9-1-7", + "/release-notes/2021/05/wordpress-5-7-1", + "/release-notes/2021/06/documentation", + "/release-notes/2021/06/drupal-8-9-15", + "/release-notes/2021/06/drupal-9-1-8", + "/release-notes/2021/06/wordpress-5-7-2", + "/release-notes/2021/06/wp-cli-2-5-0", + "/release-notes/2021/07/documentation", + "/release-notes/2021/07/drupal-7-81", + "/release-notes/2021/07/drupal-8-9-16", + "/release-notes/2021/07/drupal-9-2-0", + "/release-notes/2021/07/wordpress-5-7-2", + "/release-notes/2021/08/documentation", + "/release-notes/2021/08/drupal-7-82", + "/release-notes/2021/08/drupal-8-9-17", + "/release-notes/2021/08/drupal-9-2-0", + "/release-notes/2021/08/wordpress-5-8", + "/release-notes/2021/09/documentation", + "/release-notes/2021/09/drupal-7-82", + "/release-notes/2021/09/drupal-8-9-18", + "/release-notes/2021/09/drupal-9-2-3", + "/release-notes/2021/10/documentation", + "/release-notes/2021/10/drupal-8-9-19", + "/release-notes/2021/10/drupal-9-2-6", + "/release-notes/2021/10/wordpress-5-8-1", + "/release-notes/2021/11/documentation", + "/release-notes/2021/11/drupal-9-2-7", + "/release-notes/2021/12/documentation", + "/release-notes/2021/12/drupal-8-9-20", + "/release-notes/2021/12/drupal-9-2-8", + "/release-notes/2021/12/wordpress-5-8-2", + "/release-notes/2022/01/documentation", + "/release-notes/2022/01/drupal-9", + "/release-notes/2022/01/legacy-edge-shutdown-update", + "/release-notes/2022/01/new-and-improved-workspace-switcher", + "/release-notes/2022/01/one-click-database-and-php-upgrades", + "/release-notes/2022/01/terminus", + "/release-notes/2022/02/documentation", + "/release-notes/2022/02/drupal-9-2-11", + "/release-notes/2022/02/drupal-9-3-3", + "/release-notes/2022/02/email-preferences-in-the-new-dashboard", + "/release-notes/2022/02/wordpress-5-9", + "/release-notes/2022/03/documentation", + "/release-notes/2022/03/drupal-9-2-13", + "/release-notes/2022/03/drupal-9-3-6", + "/release-notes/2022/03/wordpress-5-9-1", + "/release-notes/2022/04/documentation", + "/release-notes/2022/04/drupal-9-2-16", + "/release-notes/2022/04/drupal-9-3-9", + "/release-notes/2022/05/documentation", + "/release-notes/2022/05/drupal-9-2-18", + "/release-notes/2022/05/drupal-9-3-12", + "/release-notes/2022/06/documentation", + "/release-notes/2022/06/drupal-9-2-20", + "/release-notes/2022/06/drupal-9-3-14", + "/release-notes/2022/06/wordpress-6-0", + "/release-notes/2022/07/documentation", + "/release-notes/2022/07/drupal-9-2-20", + "/release-notes/2022/07/drupal-9-3-17", + "/release-notes/2022/07/drupal-9-4-1", + "/release-notes/2022/07/wordpress-6-0-1", + "/release-notes/2022/08/documentation", + "/release-notes/2022/08/drupal-9-3-21", + "/release-notes/2022/08/drupal-9-4-5", + "/release-notes/2022/08/wordpress-6-0-1", + "/release-notes/2022/09/documentation", + "/release-notes/2022/09/drupal-9-4-5", + "/release-notes/2022/09/php-8-1", + "/release-notes/2022/09/wordpress-6-0-2", + "/release-notes/2022/09/wordpress-composer-managed-upstream-in-early-access", + "/release-notes/2022/10/documentation", + "/release-notes/2022/10/drupal-9-3-22", + "/release-notes/2022/10/drupal-9-4-5", + "/release-notes/2022/10/new-dashboard", + "/release-notes/2022/11/autopilot", + "/release-notes/2022/11/documentation", + "/release-notes/2022/11/drupal-9-3-22", + "/release-notes/2022/11/drupal-9-4-8", + "/release-notes/2022/11/new-dashboard", + "/release-notes/2022/11/wordpress-6-1", + "/release-notes/2022/12/drupal-10", + "/release-notes/2022/12/drupal-9-4-8", + "/release-notes/2022/12/drupal-9-5-0", + "/release-notes/2022/12/wordpress-6-1-1", + "/release-notes/2023/01/drupal-10-0-2", + "/release-notes/2023/01/drupal-9-4-9", + "/release-notes/2023/01/drupal-9-5-2", + "/release-notes/2023/02/documentation", + "/release-notes/2023/02/drupal-10-0-3", + "/release-notes/2023/02/drupal-9-4-11", + "/release-notes/2023/02/drupal-9-5-3", + "/release-notes/2023/02/enterprise-billing-center", + "/release-notes/2023/02/front-end-sites", + "/release-notes/2023/02/localdev", + "/release-notes/2023/02/pantheon-learning", + "/release-notes/2023/02/pantheon-object-cache", + "/release-notes/2023/02/roles-and-permissions", + "/release-notes/2023/02/wordpress-6-1-1", + "/release-notes/2023/02/wordpress-multisite", + "/release-notes/2023/05/cache-hit-ratio-metrics", + "/release-notes/2023/05/wordpress-6-2", + "/release-notes/2023/06/launch-check-updates", + "/release-notes/2023/06/wordpress-6-2-1", + "/release-notes/2023/06/wp-cli-2-8-0", + "/release-notes/2023/07/deprecation-of-obsolete-tls-1-2-cipher-suites", + "/release-notes/2023/07/drupal-7-98", + "/release-notes/2023/07/integrated-composer", + "/release-notes/2023/07/wp-cli-2-8-1", + "/release-notes/2023/09/drupal-sa-core-2023-006", + "/release-notes/2023/09/early-access-customer-scheduled-jobs", + "/release-notes/2023/09/early-access-streamlined-user-offboarding", + "/release-notes/2023/09/front-end-sites-enhancements", + "/release-notes/2023/09/new-php-defaults", + "/release-notes/2023/09/object-cache-pro", + "/release-notes/2023/09/pantheon-advanced-page-cache-wordpress-plugin-updates", + "/release-notes/2023/09/php-security-updates", + "/release-notes/2023/09/solr-search-for-wordpress-2-5-0-update", + "/release-notes/2023/09/wordpress-multisite-search-and-replace", + "/release-notes/2023/10/design-system-integration-docs", + "/release-notes/2023/10/drupal-security-update", + "/release-notes/2023/10/front-end-sites-settings", + "/release-notes/2023/10/php-8-1-and-8-2-updated-to-their-latest-patch-releases", + "/release-notes/2023/10/php-memory-limits-updates", + "/release-notes/2023/10/wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent", + "/release-notes/2023/11/composer-logs-visibility", + "/release-notes/2023/11/faster-backups", + "/release-notes/2023/11/front-end-sites-build-caching-and-node-js-versions", + "/release-notes/2023/11/streamlined-user-offboarding", + "/release-notes/2023/11/vpat-issued-for-product-accessibility", + "/release-notes/2023/11/wordpress-native-php-sessions-1-4-update", + "/release-notes/2023/12/delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management", + "/release-notes/2023/12/elevated-experience-with-front-end-sites-drupal-starter-kit", + "/release-notes/2023/12/optimized-monitoring-for-high-volume-directories", + "/release-notes/2023/12/upgraded-security-measures-for-uninterrupted-webops-experience", + "/release-notes/2024/01/drupal-7-99-release-bug fixes-and-feature-enhancements", + "/release-notes/2024/01/pantheon-release-notes-a-new-year-a-new-chapter", + "/release-notes/2024/01/wordpress-6-4-2-security-update", + "/release-notes/2024/01/wordpress-6-4-3", + "/release-notes/2024/01/wp-cli-v2-9-0-release-now-available-on-pantheon", + "/release-notes/2024/02/php-8.3.3-8.2.16-8.1.27", + "/release-notes/2024/02/wp-cli-2-10", + "/release-notes/2024/02/wp-cli-changes", + "/release-notes/2024/03/PHP-7-1-EOS", + "/release-notes/2024/03/drupal-7-100", + "/release-notes/2024/03/overages-policy-change", + "/release-notes/2024/03/pantheon-advanced-page-cache-1.5.0", + "/release-notes/2024/03/pantheon-mu-plugin-1-3-2", + "/release-notes/2024/03/pantheon-mu-plugin-1-3-3", + "/release-notes/2024/03/papc-drupal-file-cache", + "/release-notes/2024/03/php-8-2-8-3", + "/release-notes/2024/03/terminus-github-action-sessions-cache", + "/release-notes/2024/04/community-slack", + "/release-notes/2024/04/ea-workflow-logs", + "/release-notes/2024/04/enhanced-support-ticket-search-functionality", + "/release-notes/2024/04/new-relic-agent", + "/release-notes/2024/04/pantheon-mu-plugin-1-4-0-update", + "/release-notes/2024/04/php-8-3-recommended", + "/release-notes/2024/04/php-81-82-82", + "/release-notes/2024/04/sftp-authentication-changes", + "/release-notes/2024/04/solr-power-2-5-3", + "/release-notes/2024/04/wordpress-6-5", + "/release-notes/2024/04/wordpress-6-5-2", + "/release-notes/2024/04/wordpress-composer-managed-update", + "/release-notes/2024/04/wordpress-pantheon-mu-plugin-1-4-1-update", + "/release-notes/2024/05/5xx-error-messages", + "/release-notes/2024/05/Synthetics-Check-Limits", + "/release-notes/2024/05/load-balancing", + "/release-notes/2024/05/new-relic-agent-update-released", + "/release-notes/2024/05/pantheon-advanced-page-cache-2-0", + "/release-notes/2024/05/pantheon-mu-plugin-1-4-2-update", + "/release-notes/2024/05/pantheon-mu-plugin-1-4-3-update", + "/release-notes/2024/05/php-82-83", + "/release-notes/2024/05/sendgrid-transactional-emails", + "/release-notes/2024/05/wordpress-6-5-3-update", + "/release-notes/2024/06/drupal-7-101", + "/release-notes/2024/06/login-update", + "/release-notes/2024/06/pantheon-mu-plugin-1-4-4-wordpress-composer-managed-update", + "/release-notes/2024/06/php-81-82-83-updates", + "/release-notes/2024/06/quicksilver-examples-new-relic", + "/release-notes/2024/06/release-note-multi-select-filter", + "/release-notes/2024/06/wordpress-6-5-4", + "/release-notes/2024/06/wordpress-6-5-5", + "/release-notes/2024/07/domain-validation", + "/release-notes/2024/07/platform-robots-txt-now-supports-pope-tech", + "/required-reading", + "/rerouting-outbound-email", + "/resetting-passwords", + "/route53", + "/search/", + "/sendgrid", + "/server_name-and-server_port", + "/services-yml", + "/sftp", + "/sign-up", + "/single-application-sites", + "/site-dashboard", + "/solr", + "/ssh-keys", + "/start-state", + "/static-site-empty-upstream", + "/static-site-empty-upstream-demo", + "/style-guide", + "/support", + "/supported-drupal", + "/supported-wp", + "/switch-drupal-recommended-upstream", + "/symlinks-assumed-write-access", + "/tax-exempt-status", + "/terminus", + "/terminus-demo", + "/terminus-drupal-site-management", + "/terminus-overview", + "/terminus/ci/bitbucket", + "/terminus/ci/circleci", + "/terminus/ci/github-actions", + "/terminus/ci/gitlab", + "/terminus/commands", + "/terminus/commands/aliases", + "/terminus/commands/art", + "/terminus/commands/art-list", + "/terminus/commands/auth-login", + "/terminus/commands/auth-logout", + "/terminus/commands/auth-whoami", + "/terminus/commands/backup-automatic-disable", + "/terminus/commands/backup-automatic-enable", + "/terminus/commands/backup-automatic-info", + "/terminus/commands/backup-create", + "/terminus/commands/backup-get", + "/terminus/commands/backup-info", + "/terminus/commands/backup-list", + "/terminus/commands/backup-restore", + "/terminus/commands/branch-list", + "/terminus/commands/completion", + "/terminus/commands/connection-info", + "/terminus/commands/connection-set", + "/terminus/commands/dashboard-view", + "/terminus/commands/domain-add", + "/terminus/commands/domain-dns", + "/terminus/commands/domain-list", + "/terminus/commands/domain-lookup", + "/terminus/commands/domain-primary-add", + "/terminus/commands/domain-primary-remove", + "/terminus/commands/domain-remove", + "/terminus/commands/env-clear-cache", + "/terminus/commands/env-clone-content", + "/terminus/commands/env-code-log", + "/terminus/commands/env-code-rebuild", + "/terminus/commands/env-commit", + "/terminus/commands/env-deploy", + "/terminus/commands/env-diffstat", + "/terminus/commands/env-info", + "/terminus/commands/env-list", + "/terminus/commands/env-metrics", + "/terminus/commands/env-rotate-random-seed", + "/terminus/commands/env-view", + "/terminus/commands/env-wake", + "/terminus/commands/env-wipe", + "/terminus/commands/help", + "/terminus/commands/https-info", + "/terminus/commands/https-remove", + "/terminus/commands/https-set", + "/terminus/commands/import-complete", + "/terminus/commands/import-database", + "/terminus/commands/import-files", + "/terminus/commands/import-site", + "/terminus/commands/list", + "/terminus/commands/local-clone", + "/terminus/commands/local-commitAndPush", + "/terminus/commands/local-dockerize", + "/terminus/commands/local-getLiveDB", + "/terminus/commands/local-getLiveFiles", + "/terminus/commands/lock-disable", + "/terminus/commands/lock-enable", + "/terminus/commands/lock-info", + "/terminus/commands/machine-token-delete", + "/terminus/commands/machine-token-delete-all", + "/terminus/commands/machine-token-list", + "/terminus/commands/multidev-create", + "/terminus/commands/multidev-delete", + "/terminus/commands/multidev-list", + "/terminus/commands/multidev-merge-from-dev", + "/terminus/commands/multidev-merge-to-dev", + "/terminus/commands/new-relic-disable", + "/terminus/commands/new-relic-enable", + "/terminus/commands/new-relic-info", + "/terminus/commands/org-info", + "/terminus/commands/org-list", + "/terminus/commands/org-people-add", + "/terminus/commands/org-people-list", + "/terminus/commands/org-people-remove", + "/terminus/commands/org-people-role", + "/terminus/commands/org-site-list", + "/terminus/commands/org-site-remove", + "/terminus/commands/org-upstream-list", + "/terminus/commands/owner-set", + "/terminus/commands/payment-method-add", + "/terminus/commands/payment-method-list", + "/terminus/commands/payment-method-remove", + "/terminus/commands/plan-info", + "/terminus/commands/plan-list", + "/terminus/commands/plan-set", + "/terminus/commands/redis-disable", + "/terminus/commands/redis-enable", + "/terminus/commands/remote-drush", + "/terminus/commands/remote-wp", + "/terminus/commands/self-clear-cache", + "/terminus/commands/self-config-dump", + "/terminus/commands/self-console", + "/terminus/commands/self-info", + "/terminus/commands/self-plugin-create", + "/terminus/commands/self-plugin-install", + "/terminus/commands/self-plugin-list", + "/terminus/commands/self-plugin-migrate", + "/terminus/commands/self-plugin-reload", + "/terminus/commands/self-plugin-search", + "/terminus/commands/self-plugin-uninstall", + "/terminus/commands/self-plugin-update", + "/terminus/commands/self-update", + "/terminus/commands/service-level-set", + "/terminus/commands/site-create", + "/terminus/commands/site-delete", + "/terminus/commands/site-info", + "/terminus/commands/site-list", + "/terminus/commands/site-lookup", + "/terminus/commands/site-org-add", + "/terminus/commands/site-org-list", + "/terminus/commands/site-org-remove", + "/terminus/commands/site-team-add", + "/terminus/commands/site-team-list", + "/terminus/commands/site-team-remove", + "/terminus/commands/site-team-role", + "/terminus/commands/site-upstream-clear-cache", + "/terminus/commands/site-upstream-set", + "/terminus/commands/solr-disable", + "/terminus/commands/solr-enable", + "/terminus/commands/ssh-key-add", + "/terminus/commands/ssh-key-list", + "/terminus/commands/ssh-key-remove", + "/terminus/commands/tag-add", + "/terminus/commands/tag-list", + "/terminus/commands/tag-remove", + "/terminus/commands/upstream-info", + "/terminus/commands/upstream-list", + "/terminus/commands/upstream-updates-apply", + "/terminus/commands/upstream-updates-list", + "/terminus/commands/upstream-updates-status", + "/terminus/commands/workflow-info-logs", + "/terminus/commands/workflow-info-operations", + "/terminus/commands/workflow-info-status", + "/terminus/commands/workflow-list", + "/terminus/commands/workflow-wait", + "/terminus/commands/workflow-watch", + "/terminus/configuration", + "/terminus/create", + "/terminus/directory", + "/terminus/examples", + "/terminus/install", + "/terminus/plugins", + "/terminus/scripting", + "/terminus/supported-terminus", + "/terminus/terminus-3-0", + "/terminus/updates", + "/timeouts", + "/trainers", + "/troubleshoot", + "/unwind-drupal-multisite", + "/upgrade-drupal-with-ic-to-latest", + "/visual-studio-code", + "/wordpress", + "/wordpress-known-issues", + "/workflow-logs", + "/workshops" +] \ No newline at end of file diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index f86d7983a1..73cc3f7ea1 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -26,6 +26,13 @@ const getOmniItems = () => { children: CertificationItems, }, ]; + + fs.writeFile('OmniItems.txt', JSON.stringify(OmniItems, null, 2), (err) => { + if (err) throw err; + console.log('The file has been saved!'); + }); + + return OmniItems; }; diff --git a/src/components/omniSidebarNav/reporting-run.js b/src/components/omniSidebarNav/reporting-run.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 015988ec65..44a772cae5 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -1,5 +1,4 @@ - const flattenOmniItems = (menuItems) => { // loop over the omniItems and make a flattened array of all the links // this function should be recursive. diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index bc15890b5f..013e44b600 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -1,11 +1,4 @@ import { expect, test } from 'vitest'; -// import { -// findSubMenuItemsToUse, -// getGuideDirectory, -// getOmniSidebarActiveSection, -// } from './helpers'; -// import AllGuides from './testfixtures/allGuides.testfixture'; -// import guideDirectoryItems from './testfixtures/guideDirectoryItems.textfixture'; import omniItems from './testfixtures/omniItems.textfixture'; import { flattenOmniItems, calculateNumberOfPathsInMenu } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; From 74b953c2825c10b5c23095266d3b05eeafc1188f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 14:05:56 -0500 Subject: [PATCH 112/259] getting percentages calculated --- ...written-paths.txt => all-written-paths.js} | 7 ++++-- src/components/omniSidebarNav/getOmniItems.js | 6 ----- src/components/omniSidebarNav/index.js | 22 +++++++++++++++++++ src/components/omniSidebarNav/reporting.js | 2 +- 4 files changed, 28 insertions(+), 9 deletions(-) rename src/components/omniSidebarNav/{all-written-paths.txt => all-written-paths.js} (99%) diff --git a/src/components/omniSidebarNav/all-written-paths.txt b/src/components/omniSidebarNav/all-written-paths.js similarity index 99% rename from src/components/omniSidebarNav/all-written-paths.txt rename to src/components/omniSidebarNav/all-written-paths.js index 96a421c2b8..80b8d614c6 100644 --- a/src/components/omniSidebarNav/all-written-paths.txt +++ b/src/components/omniSidebarNav/all-written-paths.js @@ -1,4 +1,5 @@ -[ + +const allWrittenPaths = [ "/", "/1-and-1", "/404.html", @@ -1489,4 +1490,6 @@ "/wordpress-known-issues", "/workflow-logs", "/workshops" -] \ No newline at end of file +]; + +export default allWrittenPaths; diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 73cc3f7ea1..f483ad0942 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -27,12 +27,6 @@ const getOmniItems = () => { }, ]; - fs.writeFile('OmniItems.txt', JSON.stringify(OmniItems, null, 2), (err) => { - if (err) throw err; - console.log('The file has been saved!'); - }); - - return OmniItems; }; diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index c1f81d9197..2b07a337f7 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -7,6 +7,9 @@ import { getOmniSidebarActiveSection, turnItemsIntoLinks, } from './helpers.js'; +import allWrittenPaths from './all-written-paths.js'; + +import { flattenOmniItems, calculateNumberOfPathsInMenu } from './reporting'; // @todo, run prettier one more time on this directory before removing it from the PR. @@ -17,6 +20,25 @@ const OmniSidebarNav = ({ submenuPathToUse = '', }) => { const OmniItems = getOmniItems(); + + + + + + + const exceptions = ['https://certification.pantheon.io/', '/404.html']; + + const results = calculateNumberOfPathsInMenu(allWrittenPaths, OmniItems, exceptions); + + console.log(results); + + + + + + + + const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); // If the caller is asking for a specific submenu, use that directly. diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 44a772cae5..0bdbe940ab 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -52,4 +52,4 @@ const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions } } -export { flattenOmniItems, exceptions, calculateNumberOfPathsInMenu } +export { flattenOmniItems, calculateNumberOfPathsInMenu } From 0451c762b2f61db21817a563ad7f3428859973ec Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 17:16:48 -0500 Subject: [PATCH 113/259] adding contributors for exceptions examples --- src/components/omniSidebarNav/reporting.test.js | 4 ++-- .../testfixtures/allPaths.testfixture.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 013e44b600..6f6781fc1a 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -33,8 +33,8 @@ test('Calculate the percentage of written paths that are not in the menu or exce const results = calculateNumberOfPathsInMenu(allPaths, omniItems, exceptions); console.log(results.percentageNotInMenu); expect(results.pathsInMenuOrExceptions.length).toEqual(28); - expect(results.pathsNotInMenuOrExceptions.length).toEqual(55); - expect(results.percentageNotInMenuRoundedUp).toEqual(67); + expect(results.pathsNotInMenuOrExceptions.length).toEqual(65); + expect(results.percentageNotInMenuRoundedUp).toEqual(70); }); diff --git a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js index 7020042c72..c75292ced5 100644 --- a/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js +++ b/src/components/omniSidebarNav/testfixtures/allPaths.testfixture.js @@ -36,6 +36,22 @@ const allPaths = [ '/certification/study-guide/platform', '/certification/study-guide/webops', '/clamav', + + + + + +"/contribute", +"/contributors/", +"/contributors/BFTrick", +"/contributors/CdrMarks", +"/contributors/LukasRos", +"/contributors/afragen", +"/contributors/albertcausing", +"/contributors/aleksandrkorolyov", +"/contributors/alexfornuto", +"/contributors/andrewmallis", + '/guides/decoupled/drupal-backend-starters', '/guides/decoupled/drupal-backend-starters/manage-settings', '/guides/decoupled/drupal-backend-starters/build-hooks', From 023e5368a6ef5a57cba47fa13ce9ecb4e790e272 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 17:55:20 -0500 Subject: [PATCH 114/259] starting to unwind logic error that had percentages reversed --- src/components/omniSidebarNav/reporting.js | 34 +++++++- .../omniSidebarNav/reporting.test.js | 84 ++++++++++++++++++- 2 files changed, 112 insertions(+), 6 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 0bdbe940ab..b10809c2a2 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -14,12 +14,37 @@ const flattenOmniItems = (menuItems) => { return [...new Set(flattened)]; } -const InWrittenPathOrExceptions = (linkPath, flattened, allowedExceptions = []) => { +const InWrittenPathOrExceptions = (linkPath, flattened = [], allowedExceptions = []) => { + // check any of the exceptions are present in the linkPath + // if they are, return true + for (let exception of allowedExceptions) { + if (linkPath.includes(exception)) { + return true; + } + } + + if (flattened.includes(linkPath)) { + return true; + } + else { + return false; + } +} + +const InMenuOrExceptions = (linkPath, flattened = [], allowedExceptions = []) => { - if (flattened.includes(linkPath) || allowedExceptions.includes(linkPath)) { + // check any of the exceptions are present in the linkPath + // if they are, return true + for (let exception of allowedExceptions) { + if (linkPath.includes(exception)) { + return true; + } + } + + if (flattened.includes(linkPath)) { return true; } else { @@ -28,6 +53,9 @@ const InWrittenPathOrExceptions = (linkPath, flattened, allowedExceptions = []) } + + + const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions = []) => { const pathsInMenuOrExceptions = []; @@ -52,4 +80,4 @@ const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions } } -export { flattenOmniItems, calculateNumberOfPathsInMenu } +export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions } diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 6f6781fc1a..0404c5496e 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -1,9 +1,10 @@ import { expect, test } from 'vitest'; import omniItems from './testfixtures/omniItems.textfixture'; -import { flattenOmniItems, calculateNumberOfPathsInMenu } from './reporting'; +import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; // import activeSection from './testfixtures/activeSection.testfixture'; + const exceptions = ['https://certification.pantheon.io/', '/404.html']; @@ -13,6 +14,77 @@ test('Check that the deep array/object of onmiItems can be flattened and contain expect(flattened.length).toEqual(28); }); +test('check that the exceptions to menu checking are processed correctly', () => { + const flattened = flattenOmniItems(omniItems); + // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. + + + // A random path that is not present. Especially when the the other args are empty. + expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false); + + // + expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); + expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); +}); + + +const RegExExceptions = [ + + //'*contibutors*' + + // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash + /.*\/contributors\/.*/, +]; + +// I want the percentage of written paths (that are not exceptions) that are in the menu. + +function eliminateExceptions(allPaths, exceptions, RegExExceptions = []) { + return allPaths.filter(path => { + for (let exception of exceptions) { + if (path.includes(exception)) { + return false; + } + } + for (let RegExException of RegExExceptions) { + console.log(RegExException); + if (path.match(RegExException)) { + return false; + } + } + return true; + }); +} + + +test('test the set of all paths can be reduced by eliminating exceptions', () => { + // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. + const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); + + console.log(filteredWrittenPaths); + + expect(filteredWrittenPaths).not.toContain('/contributors/alexfornuto'); + expect(filteredWrittenPaths).not.toContain('/contributors/'); + + + expect(filteredWrittenPaths.length).toEqual(83); + +}); + +test('asdfasdfasfd', () => { + // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. + + const flattened = flattenOmniItems(omniItems); + + // A random path that is not present. Especially when the the other args are empty. + expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false); + + // + expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); + expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); +}); + + + test('Check that all items in the flattened menu list are present in the list of all written paths', () => { const flattened = flattenOmniItems(omniItems); @@ -27,14 +99,20 @@ test('Check that all items in the flattened menu list are present in the list of +const results = calculateNumberOfPathsInMenu(allPaths, omniItems, exceptions); test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { // merge allWrittenPaths and exceptions - const results = calculateNumberOfPathsInMenu(allPaths, omniItems, exceptions); console.log(results.percentageNotInMenu); expect(results.pathsInMenuOrExceptions.length).toEqual(28); expect(results.pathsNotInMenuOrExceptions.length).toEqual(65); expect(results.percentageNotInMenuRoundedUp).toEqual(70); - }); +// test('Check that specific contributors are filtered out based on matching', () => { +// // merge allWrittenPaths and exceptions +// console.log(results.pathsNotInMenuOrExceptions); + +// expect(results.pathsNotInMenuOrExceptions).not.toContain('/contributors/alexfornuto'); +// }); + From f357ccf50df5d0d2b278385df1680f0e4ca18450 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 18:14:33 -0500 Subject: [PATCH 115/259] fixing logic --- src/components/omniSidebarNav/reporting.js | 20 +++- .../omniSidebarNav/reporting.test.js | 96 ++++++++++--------- 2 files changed, 69 insertions(+), 47 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index b10809c2a2..8af208d1dd 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -54,6 +54,24 @@ const InMenuOrExceptions = (linkPath, flattened = [], allowedExceptions = []) => +const eliminateExceptions = (allPaths, exceptions, RegExExceptions = []) => { + return allPaths.filter(path => { + for (let exception of exceptions) { + if (path.includes(exception)) { + return false; + } + } + for (let RegExException of RegExExceptions) { + console.log(RegExException); + if (path.match(RegExException)) { + return false; + } + } + return true; + }); +} + + const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions = []) => { @@ -80,4 +98,4 @@ const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions } } -export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions } +export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions } diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 0404c5496e..66cedd81af 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -1,12 +1,16 @@ import { expect, test } from 'vitest'; import omniItems from './testfixtures/omniItems.textfixture'; -import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions } from './reporting'; +import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; -// import activeSection from './testfixtures/activeSection.testfixture'; +import { Link } from 'gatsby'; -const exceptions = ['https://certification.pantheon.io/', '/404.html']; +const exceptions = ['https://certification.pantheon.io/', '/404.html']; +const RegExExceptions = [ + // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash + /.*\/contributors\/.*/, +]; test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => { const flattened = flattenOmniItems(omniItems); @@ -14,71 +18,63 @@ test('Check that the deep array/object of onmiItems can be flattened and contain expect(flattened.length).toEqual(28); }); -test('check that the exceptions to menu checking are processed correctly', () => { - const flattened = flattenOmniItems(omniItems); - // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. +// Check that exceptions can be removed from the list of all paths +test('Check that exceptions can be removed from the list of all paths', () => { + const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); + expect(filteredWrittenPaths).not.toContain('/404.html'); + expect(filteredWrittenPaths).not.toContain('/contributors/alexfornuto'); + expect(filteredWrittenPaths).not.toContain('/contributors/'); + expect(filteredWrittenPaths.length).toEqual(83); +}); +// check that the percentage of unexceptioned paths not in the menu can be calculated +test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => { + const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); + const flattenedOmniItems = flattenOmniItems(omniItems); + +// loop over all the filtered paths and check if they are in the menu + const pathsNotInMenu = []; + const pathsInMenu = []; + for (let linkPath of filteredWrittenPaths) { + if (!flattenedOmniItems.includes(linkPath)) { + pathsNotInMenu.push(linkPath); + } + else { + pathsInMenu.push(linkPath); + } + } + // 83 filtered paths - 28 paths in the menu + 1 path that is in the menu but exteral to the site + // 83 - 28 +1 = 56 + expect(pathsNotInMenu.length).toEqual(56); + expect(pathsInMenu.length).toEqual(27); +// expect(pathsNotInMenu.length).toEqual(56); + + const percentageInMenu = (pathsInMenu.length / filteredWrittenPaths.length) * 100; + expect(Math.ceil(percentageInMenu)).toEqual(33); +}); - // A random path that is not present. Especially when the the other args are empty. - expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false); - // - expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); - expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); -}); -const RegExExceptions = [ - //'*contibutors*' - // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash - /.*\/contributors\/.*/, -]; -// I want the percentage of written paths (that are not exceptions) that are in the menu. -function eliminateExceptions(allPaths, exceptions, RegExExceptions = []) { - return allPaths.filter(path => { - for (let exception of exceptions) { - if (path.includes(exception)) { - return false; - } - } - for (let RegExException of RegExExceptions) { - console.log(RegExException); - if (path.match(RegExException)) { - return false; - } - } - return true; - }); -} -test('test the set of all paths can be reduced by eliminating exceptions', () => { - // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. - const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); - console.log(filteredWrittenPaths); - expect(filteredWrittenPaths).not.toContain('/contributors/alexfornuto'); - expect(filteredWrittenPaths).not.toContain('/contributors/'); - expect(filteredWrittenPaths.length).toEqual(83); -}); -test('asdfasdfasfd', () => { +test('check that the exceptions to menu checking are processed correctly', () => { + const flattened = flattenOmniItems(omniItems); // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. - const flattened = flattenOmniItems(omniItems); // A random path that is not present. Especially when the the other args are empty. expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false); - - // expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); }); @@ -86,6 +82,14 @@ test('asdfasdfasfd', () => { +// I want the percentage of written paths (that are not exceptions) that are in the menu. + + + + + + + test('Check that all items in the flattened menu list are present in the list of all written paths', () => { const flattened = flattenOmniItems(omniItems); From 936e947db6a9ae52f16a1ca129d42f74a02aac5c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 18:19:26 -0500 Subject: [PATCH 116/259] more logic fixing --- .../omniSidebarNav/reporting.test.js | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 66cedd81af..0968d25092 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -27,12 +27,10 @@ test('Check that exceptions can be removed from the list of all paths', () => { expect(filteredWrittenPaths.length).toEqual(83); }); -// check that the percentage of unexceptioned paths not in the menu can be calculated -test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => { - const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); - const flattenedOmniItems = flattenOmniItems(omniItems); +function CalculateFilteredPathsInMenu(filteredWrittenPaths, flattenedOmniItems) { + -// loop over all the filtered paths and check if they are in the menu + // loop over all the filtered paths and check if they are in the menu const pathsNotInMenu = []; const pathsInMenu = []; for (let linkPath of filteredWrittenPaths) { @@ -43,14 +41,34 @@ test('Check that the percentage of unexceptioned paths not in the menu can be ca pathsInMenu.push(linkPath); } } + + const percentageInMenu = (pathsInMenu.length / filteredWrittenPaths.length) * 100; + + return { + 'pathsInMenu': pathsInMenu, + 'pathsNotInMenu': pathsNotInMenu, + 'percentageInMenu': percentageInMenu, + // Round up to the nearest whole number + 'percentageInMenuRoundedUp': Math.ceil(percentageInMenu), + } + +} + + +// check that the percentage of unexceptioned paths not in the menu can be calculated +test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => { + + const filteredWrittenPaths = eliminateExceptions(allPaths, exceptions, RegExExceptions); + const flattenedOmniItems = flattenOmniItems(omniItems); + const results = CalculateFilteredPathsInMenu(filteredWrittenPaths, flattenedOmniItems); + // 83 filtered paths - 28 paths in the menu + 1 path that is in the menu but exteral to the site // 83 - 28 +1 = 56 - expect(pathsNotInMenu.length).toEqual(56); - expect(pathsInMenu.length).toEqual(27); + expect(results.pathsNotInMenu.length).toEqual(56); + expect(results.pathsInMenu.length).toEqual(27); // expect(pathsNotInMenu.length).toEqual(56); - const percentageInMenu = (pathsInMenu.length / filteredWrittenPaths.length) * 100; - expect(Math.ceil(percentageInMenu)).toEqual(33); + expect(results.percentageInMenuRoundedUp).toEqual(33); }); From 452aa7ceac55aa803654a156be2a6b75840c54a1 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 18:21:27 -0500 Subject: [PATCH 117/259] getting close --- src/components/omniSidebarNav/reporting.js | 44 ++++++++++++++++++- .../omniSidebarNav/reporting.test.js | 28 +----------- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 8af208d1dd..cd8b341bbc 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -98,4 +98,46 @@ const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions } } -export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions } + + + + + + + + +const CalculateFilteredPathsInMenu = (filteredWrittenPaths, flattenedOmniItems) => { + + + // loop over all the filtered paths and check if they are in the menu + const pathsNotInMenu = []; + const pathsInMenu = []; + for (let linkPath of filteredWrittenPaths) { + if (!flattenedOmniItems.includes(linkPath)) { + pathsNotInMenu.push(linkPath); + } + else { + pathsInMenu.push(linkPath); + } + } + + const percentageInMenu = (pathsInMenu.length / filteredWrittenPaths.length) * 100; + + return { + 'pathsInMenu': pathsInMenu, + 'pathsNotInMenu': pathsNotInMenu, + 'percentageInMenu': percentageInMenu, + // Round up to the nearest whole number + 'percentageInMenuRoundedUp': Math.ceil(percentageInMenu), + } + +} + + + + + + + + +export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu} diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 0968d25092..c28ac731ff 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -1,6 +1,6 @@ import { expect, test } from 'vitest'; import omniItems from './testfixtures/omniItems.textfixture'; -import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions } from './reporting'; +import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; import { Link } from 'gatsby'; @@ -27,33 +27,8 @@ test('Check that exceptions can be removed from the list of all paths', () => { expect(filteredWrittenPaths.length).toEqual(83); }); -function CalculateFilteredPathsInMenu(filteredWrittenPaths, flattenedOmniItems) { - // loop over all the filtered paths and check if they are in the menu - const pathsNotInMenu = []; - const pathsInMenu = []; - for (let linkPath of filteredWrittenPaths) { - if (!flattenedOmniItems.includes(linkPath)) { - pathsNotInMenu.push(linkPath); - } - else { - pathsInMenu.push(linkPath); - } - } - - const percentageInMenu = (pathsInMenu.length / filteredWrittenPaths.length) * 100; - - return { - 'pathsInMenu': pathsInMenu, - 'pathsNotInMenu': pathsNotInMenu, - 'percentageInMenu': percentageInMenu, - // Round up to the nearest whole number - 'percentageInMenuRoundedUp': Math.ceil(percentageInMenu), - } - -} - // check that the percentage of unexceptioned paths not in the menu can be calculated test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => { @@ -66,7 +41,6 @@ test('Check that the percentage of unexceptioned paths not in the menu can be ca // 83 - 28 +1 = 56 expect(results.pathsNotInMenu.length).toEqual(56); expect(results.pathsInMenu.length).toEqual(27); -// expect(pathsNotInMenu.length).toEqual(56); expect(results.percentageInMenuRoundedUp).toEqual(33); }); From c98e38afe08914843e03c16ea37dea7df8b3a304 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 18:26:55 -0500 Subject: [PATCH 118/259] 8%! --- src/components/omniSidebarNav/index.js | 19 ++++++++++++++++--- src/components/omniSidebarNav/reporting.js | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 2b07a337f7..ef6499632d 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -9,7 +9,7 @@ import { } from './helpers.js'; import allWrittenPaths from './all-written-paths.js'; -import { flattenOmniItems, calculateNumberOfPathsInMenu } from './reporting'; +import { flattenOmniItems, CalculateFilteredPathsInMenu, eliminateExceptions } from './reporting'; // @todo, run prettier one more time on this directory before removing it from the PR. @@ -25,10 +25,21 @@ const OmniSidebarNav = ({ - const exceptions = ['https://certification.pantheon.io/', '/404.html']; + const RegExExceptions = [ + // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash + /.*\/contributors\/.*/, + /.*\/release-notes\/.*/, + /.*\/terminus\/commands\/.*/, + ]; + + const filteredWrittenPaths = eliminateExceptions(allWrittenPaths, exceptions, RegExExceptions); + const flattenedOmniItems = flattenOmniItems(OmniItems); + const results = CalculateFilteredPathsInMenu(filteredWrittenPaths, flattenedOmniItems); + - const results = calculateNumberOfPathsInMenu(allWrittenPaths, OmniItems, exceptions); + + // const results = calculateNumberOfPathsInMenu(allWrittenPaths, OmniItems, exceptions); console.log(results); @@ -39,6 +50,8 @@ const OmniSidebarNav = ({ + + const menuItems = getOmniSidebarActiveSection(activePage, OmniItems); // If the caller is asking for a specific submenu, use that directly. diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index cd8b341bbc..92f2bf09b2 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -62,7 +62,7 @@ const eliminateExceptions = (allPaths, exceptions, RegExExceptions = []) => { } } for (let RegExException of RegExExceptions) { - console.log(RegExException); + //console.log(RegExException); if (path.match(RegExException)) { return false; } From 98da549d86167a6fd7e606a7cf870e6aba337b70 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 20:29:06 -0500 Subject: [PATCH 119/259] removing unused stuff --- src/components/omniSidebarNav/reporting.js | 27 +--------- .../omniSidebarNav/reporting.test.js | 51 +------------------ 2 files changed, 2 insertions(+), 76 deletions(-) diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js index 92f2bf09b2..e0ae59d438 100644 --- a/src/components/omniSidebarNav/reporting.js +++ b/src/components/omniSidebarNav/reporting.js @@ -74,31 +74,6 @@ const eliminateExceptions = (allPaths, exceptions, RegExExceptions = []) => { -const calculateNumberOfPathsInMenu = (ArrayOfPaths, omniItems, allowedExceptions = []) => { - - const pathsInMenuOrExceptions = []; - const pathsNotInMenuOrExceptions = []; - const flattened = flattenOmniItems(omniItems); - // Loop over flattened and check that each item is in allWrittenPaths - for (let linkPath of ArrayOfPaths) { - - if (InWrittenPathOrExceptions(linkPath, flattened, allowedExceptions)) { - pathsInMenuOrExceptions.push(linkPath); - } else { - pathsNotInMenuOrExceptions.push(linkPath); - } - } - const percentageNotInMenu = (pathsNotInMenuOrExceptions.length / ArrayOfPaths.length) * 100; - return { - 'pathsInMenuOrExceptions': pathsInMenuOrExceptions, - 'pathsNotInMenuOrExceptions': pathsNotInMenuOrExceptions, - 'percentageNotInMenu': percentageNotInMenu, - // Round up to the nearest whole number - 'percentageNotInMenuRoundedUp': Math.ceil(percentageNotInMenu), - } -} - - @@ -140,4 +115,4 @@ const CalculateFilteredPathsInMenu = (filteredWrittenPaths, flattenedOmniItems) -export { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu} +export { flattenOmniItems, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu} diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index c28ac731ff..603ccd6ffe 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -1,8 +1,7 @@ import { expect, test } from 'vitest'; import omniItems from './testfixtures/omniItems.textfixture'; -import { flattenOmniItems, calculateNumberOfPathsInMenu, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu } from './reporting'; +import { flattenOmniItems, InMenuOrExceptions, eliminateExceptions, CalculateFilteredPathsInMenu } from './reporting'; import allPaths from './testfixtures/allPaths.testfixture'; -import { Link } from 'gatsby'; @@ -28,8 +27,6 @@ test('Check that exceptions can be removed from the list of all paths', () => { }); - - // check that the percentage of unexceptioned paths not in the menu can be calculated test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => { @@ -46,42 +43,16 @@ test('Check that the percentage of unexceptioned paths not in the menu can be ca }); - - - - - - - - - - - - - - test('check that the exceptions to menu checking are processed correctly', () => { const flattened = flattenOmniItems(omniItems); // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links. - // A random path that is not present. Especially when the the other args are empty. expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false); expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(true); }); - - - -// I want the percentage of written paths (that are not exceptions) that are in the menu. - - - - - - - test('Check that all items in the flattened menu list are present in the list of all written paths', () => { const flattened = flattenOmniItems(omniItems); @@ -92,23 +63,3 @@ test('Check that all items in the flattened menu list are present in the list of expect(allWrittenPathsAndExceptions).toContain(item); } }); - - - -const results = calculateNumberOfPathsInMenu(allPaths, omniItems, exceptions); - -test('Calculate the percentage of written paths that are not in the menu or exceptions', () => { - // merge allWrittenPaths and exceptions - console.log(results.percentageNotInMenu); - expect(results.pathsInMenuOrExceptions.length).toEqual(28); - expect(results.pathsNotInMenuOrExceptions.length).toEqual(65); - expect(results.percentageNotInMenuRoundedUp).toEqual(70); -}); - -// test('Check that specific contributors are filtered out based on matching', () => { -// // merge allWrittenPaths and exceptions -// console.log(results.pathsNotInMenuOrExceptions); - -// expect(results.pathsNotInMenuOrExceptions).not.toContain('/contributors/alexfornuto'); -// }); - From 0e33875a4cce81f1e4228305bb65fa7ad0f0f90b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 20:49:51 -0500 Subject: [PATCH 120/259] adding to menu --- src/components/omniSidebarNav/getOmniItems.js | 45 +++++++++++++++++++ src/components/omniSidebarNav/index.js | 5 ++- .../omniSidebarNav/reporting.test.js | 7 ++- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index f483ad0942..c90f62ebef 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -7,6 +7,51 @@ import { getGuideDirectory } from './helpers'; */ const getOmniItems = () => { const OmniItems = [ + // about docs + // /contribute + +// site serving infrastructure +// /guides/filesystem +// /guides/global-cdn +// /guides/php + + + + + + // Extending Pantheon + // /guides/quicksilver + // /guides/build-tools + // /guides/terminus + // /guides/wp-cli + + +// DNS providers dns-providers +// 1-and-1 + + { + link: '/platform', + title: 'Ops Platform', + children: [ + getGuideDirectory('guides/php'), + getGuideDirectory('guides/filesystem'), + + ], + }, + + + { + link: '/develop', + title: 'Development workflows', + children: [ + getGuideDirectory('guides/git'), + getGuideDirectory('guides/multidev'), + getGuideDirectory('guides/new-relic'), + getGuideDirectory('guides/sftp'), + getGuideDirectory('guides/wp-cli'), + ], + }, + { link: '/guides/decoupled', title: 'Front-End Sites and Starter Kits', diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index ef6499632d..8e41abdb26 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -25,7 +25,10 @@ const OmniSidebarNav = ({ - const exceptions = ['https://certification.pantheon.io/', '/404.html']; + const exceptions = ['https://certification.pantheon.io/', + '/404.html', + '/404/', + ]; const RegExExceptions = [ // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash /.*\/contributors\/.*/, diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js index 603ccd6ffe..6523af4cc1 100644 --- a/src/components/omniSidebarNav/reporting.test.js +++ b/src/components/omniSidebarNav/reporting.test.js @@ -5,7 +5,12 @@ import allPaths from './testfixtures/allPaths.testfixture'; -const exceptions = ['https://certification.pantheon.io/', '/404.html']; +const exceptions = [ + 'https://certification.pantheon.io/', + '/404.html' + + +]; const RegExExceptions = [ // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash /.*\/contributors\/.*/, From da3aa9983114296cc5980ad3682e038f57c4aad4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 21:17:45 -0500 Subject: [PATCH 121/259] more menus --- src/components/omniSidebarNav/getOmniItems.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index c90f62ebef..8f8c35f047 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -35,6 +35,22 @@ const getOmniItems = () => { children: [ getGuideDirectory('guides/php'), getGuideDirectory('guides/filesystem'), + getGuideDirectory('guides/agcdn'), + getGuideDirectory('guides/backups'), + getGuideDirectory('guides/disaster-recovery'), + getGuideDirectory('guides/edge-integrations'), + getGuideDirectory('guides/environment-configuration'), + + ], + }, + + { + link: '/manage', + title: 'account-management', + children: [ + getGuideDirectory('guides/account-mgmt'), + getGuideDirectory('guides/enterprise-billing-center'), + //getGuideDirectory('guides/filesystem'), ], }, From 8509cd5ee303eff8ad5aaa72827e5c55dae39b01 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 11 Jul 2024 22:10:22 -0500 Subject: [PATCH 122/259] 55% --- src/components/omniSidebarNav/getOmniItems.js | 109 ++++++++++++++---- src/components/omniSidebarNav/helpers.js | 4 + 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 8f8c35f047..d3bf0b0232 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -10,47 +10,66 @@ const getOmniItems = () => { // about docs // /contribute -// site serving infrastructure -// /guides/filesystem -// /guides/global-cdn -// /guides/php +// DNS providers dns-providers +// 1-and-1 - // Extending Pantheon - // /guides/quicksilver - // /guides/build-tools - // /guides/terminus - // /guides/wp-cli + + { + link: '/get-started', + title: 'Get Started', + children: [ + getGuideDirectory('guides/getstarted'), + getGuideDirectory('guides/launch'), + getGuideDirectory('guides/migrate'), + getGuideDirectory('guides/wordpress-pantheon'), + ], + }, -// DNS providers dns-providers -// 1-and-1 + + { + link: '/asdf', + title: 'competitors', + children: [ + // getGuideDirectory('guides/pagely'), + // getGuideDirectory('guides/platformsh'), + // getGuideDirectory('guides/kinsta'), + // getGuideDirectory('guides/wpengine'), + // getGuideDirectory('guides/wordpressvip'), + ], + }, + { link: '/platform', title: 'Ops Platform', children: [ getGuideDirectory('guides/php'), + getGuideDirectory('guides/logs-pantheon'), getGuideDirectory('guides/filesystem'), + getGuideDirectory('guides/global-cdn'), getGuideDirectory('guides/agcdn'), + // delete this guide? + getGuideDirectory('guides/fastly-pantheon'), getGuideDirectory('guides/backups'), getGuideDirectory('guides/disaster-recovery'), getGuideDirectory('guides/edge-integrations'), + getGuideDirectory('guides/errors-and-server-responses'), getGuideDirectory('guides/environment-configuration'), - - ], - }, - - { - link: '/manage', - title: 'account-management', - children: [ - getGuideDirectory('guides/account-mgmt'), - getGuideDirectory('guides/enterprise-billing-center'), - //getGuideDirectory('guides/filesystem'), + getGuideDirectory('guides/drupal'), + getGuideDirectory('guides/wordpress-developer'), + getGuideDirectory('guides/wordpress-configurations'), + getGuideDirectory('guides/solr-drupal'), + getGuideDirectory('guides/redirect'), + getGuideDirectory('guides/mariadb-mysql'), + getGuideDirectory('guides/platform-considerations'), + getGuideDirectory('guides/frontend-performance'), + getGuideDirectory('guides/woocommerce'), + getGuideDirectory('guides/multisite'), ], }, @@ -63,11 +82,55 @@ const getOmniItems = () => { getGuideDirectory('guides/git'), getGuideDirectory('guides/multidev'), getGuideDirectory('guides/new-relic'), + getGuideDirectory('guides/wordpress-composer'), getGuideDirectory('guides/sftp'), getGuideDirectory('guides/wp-cli'), + getGuideDirectory('guides/drush'), + getGuideDirectory('guides/quicksilver'), + getGuideDirectory('guides/local-development'), + // maybe move this to a "tutorial" section + getGuideDirectory('guides/wordpress-git'), + //getGuideDirectory('integrated-composer'), + ], + }, + + + { + link: '/manage', + title: 'account-management', + children: [ + getGuideDirectory('guides/account-mgmt/account'), + getGuideDirectory('guides/account-mgmt/billing'), + getGuideDirectory('guides/account-mgmt/plans'), + getGuideDirectory('guides/account-mgmt/traffic'), + getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), + getGuideDirectory('guides/enterprise-billing-center'), + getGuideDirectory('guides/sso'), + getGuideDirectory('guides/wordpress-google-sso'), + getGuideDirectory('guides/support'), + getGuideDirectory('guides/professional-services'), + getGuideDirectory('guides/filesystem'), + getGuideDirectory('guides/domains'), + getGuideDirectory('guides/custom-upstream'), + getGuideDirectory('guides/secure-development'), + getGuideDirectory('guides/autopilot'), + + ], + }, + + + { + link: '/asdfasdfasdf', + // better name for this section needed + title: 'Futher Integrations', + children: [ + getGuideDirectory('guides/pagerduty'), + getGuideDirectory('guides/accessibility'), + ], }, + { link: '/guides/decoupled', title: 'Front-End Sites and Starter Kits', @@ -87,7 +150,7 @@ const getOmniItems = () => { children: CertificationItems, }, ]; - + console.log(OmniItems); return OmniItems; }; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 34c266edd7..ce789f2d5b 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -81,6 +81,10 @@ const findSubMenuItemsToUse = function (topLevelParentPath, NestedItems) { * @returns {Object} - The guide directory object with its title, link, and children. */ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { + + + console.log(guideDirectory) + //console.log(AllGuides.allGuides.edges); const ChildItems = []; var guideTitle = ''; for (let item of AllGuides.allGuides.edges) { From 4651122204827ab0e9e7c95bfc922301a30f1026 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 13:37:28 -0500 Subject: [PATCH 123/259] migrating and upgrading guides --- src/components/omniSidebarNav/getOmniItems.js | 69 +++++++++++++------ src/components/omniSidebarNav/helpers.js | 5 +- src/components/omniSidebarNav/helpers.test.js | 2 +- 3 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index d3bf0b0232..0c30955926 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -33,13 +33,30 @@ const getOmniItems = () => { { link: '/asdf', - title: 'competitors', + title: 'Migrating and upgrading', children: [ - // getGuideDirectory('guides/pagely'), - // getGuideDirectory('guides/platformsh'), - // getGuideDirectory('guides/kinsta'), - // getGuideDirectory('guides/wpengine'), - // getGuideDirectory('guides/wordpressvip'), + getGuideDirectory('guides/pagely'), + getGuideDirectory('guides/platformsh'), + getGuideDirectory('guides/kinsta'), + getGuideDirectory('guides/wpengine'), + getGuideDirectory('guides/wordpressvip'), + // Needs a title override + getGuideDirectory('guides/drupal-hosted-createcustom'), + + // needs a title override + getGuideDirectory('guides/drupal-hosted-btworkflow'), + + getGuideDirectory('guides/drupal-hosted-createbt'), + + getGuideDirectory('guides/drupal-hosted-createdashboard-set8'), + getGuideDirectory('guides/drupal-hosted-createempty-md'), + getGuideDirectory('guides/drupal-hosted-md'), + getGuideDirectory('guides/drupal-unhosted'), + getGuideDirectory('guides/guided'), + getGuideDirectory('guides/integrated-composer'), + getGuideDirectory('guides/manual-d8-composer-to-d8'), + + ], }, @@ -49,15 +66,15 @@ const getOmniItems = () => { title: 'Ops Platform', children: [ getGuideDirectory('guides/php'), - getGuideDirectory('guides/logs-pantheon'), - getGuideDirectory('guides/filesystem'), - getGuideDirectory('guides/global-cdn'), + getGuideDirectory('guides/logs-pantheon', 'Log files'), + getGuideDirectory('guides/filesystem', 'Filesystem'), + getGuideDirectory('guides/global-cdn', 'Global CDN'), getGuideDirectory('guides/agcdn'), // delete this guide? getGuideDirectory('guides/fastly-pantheon'), getGuideDirectory('guides/backups'), - getGuideDirectory('guides/disaster-recovery'), - getGuideDirectory('guides/edge-integrations'), + getGuideDirectory('guides/disaster-recovery', 'Disaster Recovery Playbook'), + getGuideDirectory('guides/edge-integrations', 'Edge Integrations'), getGuideDirectory('guides/errors-and-server-responses'), getGuideDirectory('guides/environment-configuration'), getGuideDirectory('guides/drupal'), @@ -68,8 +85,8 @@ const getOmniItems = () => { getGuideDirectory('guides/mariadb-mysql'), getGuideDirectory('guides/platform-considerations'), getGuideDirectory('guides/frontend-performance'), - getGuideDirectory('guides/woocommerce'), - getGuideDirectory('guides/multisite'), + getGuideDirectory('guides/woocommerce', "WooCommerce"), + getGuideDirectory('guides/multisite', "WordPress Multisite"), ], }, @@ -79,22 +96,30 @@ const getOmniItems = () => { link: '/develop', title: 'Development workflows', children: [ - getGuideDirectory('guides/git'), + getGuideDirectory('guides/git', "Git"), getGuideDirectory('guides/multidev'), - getGuideDirectory('guides/new-relic'), - getGuideDirectory('guides/wordpress-composer'), - getGuideDirectory('guides/sftp'), - getGuideDirectory('guides/wp-cli'), - getGuideDirectory('guides/drush'), - getGuideDirectory('guides/quicksilver'), - getGuideDirectory('guides/local-development'), + getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), + getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), + getGuideDirectory('guides/sftp', 'SFTP'), + getGuideDirectory('guides/wp-cli', 'WP-CLI'), + getGuideDirectory('guides/drush', 'Drush (the Drupal CLI)'), + getGuideDirectory('guides/quicksilver', 'Quicksilver Workflow Hooks'), + getGuideDirectory('guides/local-development', 'Local Development'), // maybe move this to a "tutorial" section - getGuideDirectory('guides/wordpress-git'), + getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), + + + + // + //getGuideDirectory('integrated-composer'), ], }, + + + { link: '/manage', title: 'account-management', diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index ce789f2d5b..2b7c1ed6b5 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -80,7 +80,7 @@ const findSubMenuItemsToUse = function (topLevelParentPath, NestedItems) { * @param {Object} [AllGuides=allGuides()] - The object containing all the guides. * @returns {Object} - The guide directory object with its title, link, and children. */ -const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { +const getGuideDirectory = (guideDirectory, overrideGuideTitle = '', AllGuides = allGuides()) => { console.log(guideDirectory) @@ -101,7 +101,8 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => { return { link: '/' + guideDirectory, - title: guideTitle, + // If there is an overrideGuideTitle, use that instead of the guideTitle + title: overrideGuideTitle || guideTitle, children: ChildItems, }; }; diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js index 4f787de4fa..59534e9229 100644 --- a/src/components/omniSidebarNav/helpers.test.js +++ b/src/components/omniSidebarNav/helpers.test.js @@ -27,7 +27,7 @@ test('finds sub menu to use', () => { test('Check that the items for a specific guide directory path are correct', () => { const guideDirectory = 'guides/decoupled/wp-backend-starters'; - expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual( + expect(getGuideDirectory(guideDirectory, '', AllGuides)).toEqual( guideDirectoryItems, ); }); From a5e41f87ffb0d6c9897714cee8a9eebb2b1f4e7f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 13:56:49 -0500 Subject: [PATCH 124/259] more guides in menus --- src/components/omniSidebarNav/getOmniItems.js | 52 ++++++++++++------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 0c30955926..d9949af90f 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -35,26 +35,37 @@ const getOmniItems = () => { link: '/asdf', title: 'Migrating and upgrading', children: [ - getGuideDirectory('guides/pagely'), - getGuideDirectory('guides/platformsh'), - getGuideDirectory('guides/kinsta'), - getGuideDirectory('guides/wpengine'), - getGuideDirectory('guides/wordpressvip'), + + /* + +acquia kinsta pagely wordpressvip +guided manual-d8-composer-to-d8 platformsh wpengine + */ + + getGuideDirectory('guides/migrate/acquia', 'Acquia'), + getGuideDirectory('guides/migrate/kinsta', 'Kinsta'), + getGuideDirectory('guides/migrate/pagely', 'Pagely'), + getGuideDirectory('guides/migrate/wordpressvip', 'WordPress VIP'), + getGuideDirectory('guides/migrate/guided', 'Guided Migration'), + getGuideDirectory('guides/migrate/manual-d8-composer-to-d8', 'Manual d8 to d8'), + getGuideDirectory('guides/migrate/platformsh', 'Platform.sh'), + getGuideDirectory('guides/migrate/wpengine', 'WP Engine'), + // Needs a title override - getGuideDirectory('guides/drupal-hosted-createcustom'), + getGuideDirectory('guides/drupal/drupal-hosted-createcustom', 'drupal-hosted-createcustom'), // needs a title override - getGuideDirectory('guides/drupal-hosted-btworkflow'), + getGuideDirectory('guides/drupal/drupal-hosted-btworkflow', 'drupal-hosted-btworkflow'), - getGuideDirectory('guides/drupal-hosted-createbt'), + getGuideDirectory('guides/drupal/drupal-hosted-createbt', 'drupal-hosted-createbt'), - getGuideDirectory('guides/drupal-hosted-createdashboard-set8'), - getGuideDirectory('guides/drupal-hosted-createempty-md'), - getGuideDirectory('guides/drupal-hosted-md'), - getGuideDirectory('guides/drupal-unhosted'), - getGuideDirectory('guides/guided'), + getGuideDirectory('guides/drupal/drupal-hosted-createdashboard-set8', 'drupal-hosted-createdashboard-set8'), + getGuideDirectory('guides/drupal/drupal-hosted-createempty-md', 'drupal-hosted-createempty-md'), + getGuideDirectory('guides/drupal/drupal-hosted-md', 'drupal-hosted-md'), + getGuideDirectory('guides/drupal/drupal-unhosted', 'unhosted???'), + getGuideDirectory('guides/drupal-unhosted-composer', 'unhosted-composer'), + getGuideDirectory('guides/drupal/drupal-hosted', 'drupal-hosted'), getGuideDirectory('guides/integrated-composer'), - getGuideDirectory('guides/manual-d8-composer-to-d8'), ], @@ -97,6 +108,7 @@ const getOmniItems = () => { title: 'Development workflows', children: [ getGuideDirectory('guides/git', "Git"), + getGuideDirectory('guides/multidev'), getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), @@ -107,7 +119,7 @@ const getOmniItems = () => { getGuideDirectory('guides/local-development', 'Local Development'), // maybe move this to a "tutorial" section getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), - + getGuideDirectory('guides/build-tools', "build tools"), // @@ -122,7 +134,7 @@ const getOmniItems = () => { { link: '/manage', - title: 'account-management', + title: 'Account Management', children: [ getGuideDirectory('guides/account-mgmt/account'), getGuideDirectory('guides/account-mgmt/billing'), @@ -131,14 +143,16 @@ const getOmniItems = () => { getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), getGuideDirectory('guides/enterprise-billing-center'), getGuideDirectory('guides/sso'), - getGuideDirectory('guides/wordpress-google-sso'), - getGuideDirectory('guides/support'), + getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'), + getGuideDirectory('guides/support', 'Support'), getGuideDirectory('guides/professional-services'), - getGuideDirectory('guides/filesystem'), + getGuideDirectory('guides/domains'), getGuideDirectory('guides/custom-upstream'), getGuideDirectory('guides/secure-development'), getGuideDirectory('guides/autopilot'), + getGuideDirectory('guides/autopilot-custom-upstream'), + ], }, From e28a8d620cff5a66f74a2bfd478b2d7220eebbe4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 14:05:28 -0500 Subject: [PATCH 125/259] 199! --- src/components/omniSidebarNav/getOmniItems.js | 2 +- src/components/omniSidebarNav/helpers.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index d9949af90f..f5b21f9c04 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -63,7 +63,7 @@ guided manual-d8-composer-to-d8 platformsh wpeng getGuideDirectory('guides/drupal/drupal-hosted-createempty-md', 'drupal-hosted-createempty-md'), getGuideDirectory('guides/drupal/drupal-hosted-md', 'drupal-hosted-md'), getGuideDirectory('guides/drupal/drupal-unhosted', 'unhosted???'), - getGuideDirectory('guides/drupal-unhosted-composer', 'unhosted-composer'), + getGuideDirectory('guides/drupal/drupal-unhosted-composer', 'unhosted-composer'), getGuideDirectory('guides/drupal/drupal-hosted', 'drupal-hosted'), getGuideDirectory('guides/integrated-composer'), diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 2b7c1ed6b5..8298e17d12 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -100,7 +100,8 @@ const getGuideDirectory = (guideDirectory, overrideGuideTitle = '', AllGuides = } return { - link: '/' + guideDirectory, + link: ChildItems.length > 0 ? ChildItems[0].link : '/' + guideDirectory, + // link: '/' + guideDirectory, // If there is an overrideGuideTitle, use that instead of the guideTitle title: overrideGuideTitle || guideTitle, children: ChildItems, From 28d12cc7609a246798ad595deea24c00d4da457a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 21:24:11 -0500 Subject: [PATCH 126/259] updating exceptions --- src/components/omniSidebarNav/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js index 8e41abdb26..56023f7458 100644 --- a/src/components/omniSidebarNav/index.js +++ b/src/components/omniSidebarNav/index.js @@ -33,6 +33,7 @@ const OmniSidebarNav = ({ // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash /.*\/contributors\/.*/, /.*\/release-notes\/.*/, + /.*\/iframeembeds\/.*/, /.*\/terminus\/commands\/.*/, ]; From 4eb0e08d5682ac0c1e74e0b4155a9a8cabdedd96 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 21:44:52 -0500 Subject: [PATCH 127/259] Adding menu to video template --- src/components/omniSidebarNav/getOmniItems.js | 27 +++++++++---------- src/components/omniSidebarNav/helpers.js | 3 --- src/templates/doc.js | 1 + src/templates/video.js | 5 ++++ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index f5b21f9c04..e4789d5961 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -35,21 +35,23 @@ const getOmniItems = () => { link: '/asdf', title: 'Migrating and upgrading', children: [ - - /* - -acquia kinsta pagely wordpressvip -guided manual-d8-composer-to-d8 platformsh wpengine - */ + { + link: '/migrate-wordpress', + title: 'migrate-wordpress', + children: [ + getGuideDirectory('guides/migrate/kinsta', 'Kinsta'), + getGuideDirectory('guides/migrate/pagely', 'Pagely'), + getGuideDirectory('guides/migrate/wordpressvip', 'WordPress VIP'), + getGuideDirectory('guides/migrate/wpengine', 'WP Engine'), + ], + }, getGuideDirectory('guides/migrate/acquia', 'Acquia'), - getGuideDirectory('guides/migrate/kinsta', 'Kinsta'), - getGuideDirectory('guides/migrate/pagely', 'Pagely'), - getGuideDirectory('guides/migrate/wordpressvip', 'WordPress VIP'), + getGuideDirectory('guides/migrate/guided', 'Guided Migration'), getGuideDirectory('guides/migrate/manual-d8-composer-to-d8', 'Manual d8 to d8'), getGuideDirectory('guides/migrate/platformsh', 'Platform.sh'), - getGuideDirectory('guides/migrate/wpengine', 'WP Engine'), + // Needs a title override getGuideDirectory('guides/drupal/drupal-hosted-createcustom', 'drupal-hosted-createcustom'), @@ -121,10 +123,6 @@ guided manual-d8-composer-to-d8 platformsh wpeng getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), getGuideDirectory('guides/build-tools', "build tools"), - - // - - //getGuideDirectory('integrated-composer'), ], }, @@ -189,7 +187,6 @@ guided manual-d8-composer-to-d8 platformsh wpeng children: CertificationItems, }, ]; - console.log(OmniItems); return OmniItems; }; diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 8298e17d12..f9b9a7abcf 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -82,9 +82,6 @@ const findSubMenuItemsToUse = function (topLevelParentPath, NestedItems) { */ const getGuideDirectory = (guideDirectory, overrideGuideTitle = '', AllGuides = allGuides()) => { - - console.log(guideDirectory) - //console.log(AllGuides.allGuides.edges); const ChildItems = []; var guideTitle = ''; for (let item of AllGuides.allGuides.edges) { diff --git a/src/templates/doc.js b/src/templates/doc.js index 72f3082251..0f0aba2ebb 100644 --- a/src/templates/doc.js +++ b/src/templates/doc.js @@ -79,6 +79,7 @@ class DocTemplate extends React.Component { cms={node.frontmatter.cms} />
+
diff --git a/src/templates/video.js b/src/templates/video.js index c82f136184..cac6712a7b 100644 --- a/src/templates/video.js +++ b/src/templates/video.js @@ -5,6 +5,7 @@ import HeaderBody from "../components/headerBody" import SEO from "../layout/seo" import { Container } from "@pantheon-systems/pds-toolkit-react" import MdxWrapper from "../components/mdxWrapper" +import OmniSidebarNav from "../components/omniSidebarNav"; // Set container width for search and main content. @@ -59,6 +60,10 @@ class VideoTemplate extends React.Component { contributors={node.frontmatter.contributors} featured={node.frontmatter.featuredcontributor} /> + +
From 2f19712ce1980ed81d9b51baeb1da6b9b036f56a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 22:03:46 -0500 Subject: [PATCH 128/259] putting omni items in doc template --- src/components/omniSidebarNav/getOmniItems.js | 35 ++++++++++++++++++- src/templates/doc.js | 7 ++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index e4789d5961..e1039c6f8b 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,6 +1,20 @@ import CertificationItems from './submenus/certification'; import { getGuideDirectory } from './helpers'; +function simpleLink(link, title= '', children = []) { + + const returning = { + link: link, + title: title || link, + }; + + if (children.length > 0) { + returning.children = children; + } + return returning; + +} + /** * Retrieves the all the menu items for the sidebar navigation. * @returns {Array} An array of Omni items. @@ -76,8 +90,26 @@ const getOmniItems = () => { { link: '/platform', - title: 'Ops Platform', + title: 'Web Infrastructure', children: [ + + + simpleLink('/object-cache', 'Object Cache', [ + + simpleLink('/object-cache/cli', 'CLI'), + simpleLink('/object-cache/drupal', 'Drupal'), + simpleLink('/object-cache/errors', 'Errors'), + simpleLink('/object-cache/faq', 'FAQ'), + simpleLink('/object-cache/remove', 'remove'), + simpleLink('/object-cache/wordpress', 'WordPress'), + simpleLink('/object-cache/wordpress-deprecated', 'WordPress deprecated'), + + ]), + + + + + getGuideDirectory('guides/php'), getGuideDirectory('guides/logs-pantheon', 'Log files'), getGuideDirectory('guides/filesystem', 'Filesystem'), @@ -101,6 +133,7 @@ const getOmniItems = () => { getGuideDirectory('guides/woocommerce', "WooCommerce"), getGuideDirectory('guides/multisite', "WordPress Multisite"), + ], }, diff --git a/src/templates/doc.js b/src/templates/doc.js index 0f0aba2ebb..2bc7a7dffd 100644 --- a/src/templates/doc.js +++ b/src/templates/doc.js @@ -10,6 +10,7 @@ import GetFeedback from "../components/getFeedback" import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import MdxWrapper from "../components/mdxWrapper" +import OmniSidebarNav from "../components/omniSidebarNav"; // Set container width for search and main content. @@ -80,6 +81,12 @@ class DocTemplate extends React.Component { />
+ + + +
From 25c4965c94702f3a53d490700f5fea13073af67e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 12 Jul 2024 22:10:42 -0500 Subject: [PATCH 129/259] starting on DNS --- src/components/omniSidebarNav/getOmniItems.js | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index e1039c6f8b..ad2c1a6fa1 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -45,6 +45,34 @@ const getOmniItems = () => { + { + link: '/dns-providers', + title: 'DNS Providers', + children: [ +/* + 1 & 1 + Amazon Route 53 + Cloudflare + DNS Made Easy + DreamHost + Dyn + Enom + Gandi + GoDaddy + Google + Namecheap + Network Solutions +*/ + simpleLink('/1-and-1', '1 & 1'), + simpleLink('/route53', 'Amazon Route 53'), +simpleLink('/cloudflare', 'Cloudflare'), +simpleLink('/dns-made-easy', 'DNS Made Easy'), + + + ], + }, + + { link: '/asdf', title: 'Migrating and upgrading', @@ -181,7 +209,8 @@ const getOmniItems = () => { getGuideDirectory('guides/domains'), getGuideDirectory('guides/custom-upstream'), getGuideDirectory('guides/secure-development'), - getGuideDirectory('guides/autopilot'), + simpleLink('/autopilot', 'Autopilot Overview'), + getGuideDirectory('guides/autopilot', 'Autopilot Guide'), getGuideDirectory('guides/autopilot-custom-upstream'), From bba2b24a16222893fac7f370a21c5706e79c1336 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 18:54:08 -0500 Subject: [PATCH 130/259] putting everything in a menu --- src/components/omniSidebarNav/getOmniItems.js | 223 ++++++++++++++++++ src/components/omniSidebarNav/helpers.js | 2 +- 2 files changed, 224 insertions(+), 1 deletion(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index ad2c1a6fa1..1c08b46a9f 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -32,6 +32,224 @@ const getOmniItems = () => { + + { + link: '/asdfasdfasdf', + title: 'Unassigned', + children: [ + + simpleLink('/'), + simpleLink('/add-site'), + simpleLink('add-site-clone'), + simpleLink('add-site-custom-upstream'), + simpleLink('add-site-dashboard'), + simpleLink('addons'), + simpleLink('agency-tips'), + simpleLink('apcu'), + simpleLink('application-containers'), + simpleLink('automate'), + simpleLink('basic-troubleshooting'), + simpleLink('behat'), + simpleLink('billing'), + simpleLink('bots-and-indexing'), + simpleLink('cache'), + simpleLink('cache-control'), + simpleLink('caching-advanced-topics'), + simpleLink('certificate-bundles'), + simpleLink('clamav'), + simpleLink('clear-caches'), + simpleLink('client-ip'), + simpleLink('cloud-optimization'), + simpleLink('code-of-conduct'), + simpleLink('composer'), + simpleLink('composer-convert'), + simpleLink('composer-convert-from-empty'), + simpleLink('configure-dns'), + simpleLink('connection-modes'), + simpleLink('content-staging'), + simpleLink('continuous-integration'), + simpleLink('contribute'), + simpleLink('cookies'), + simpleLink('core-updates'), + simpleLink('crisis-response-upstream'), + simpleLink('custom-certificates'), + simpleLink('custom-upstreams'), + simpleLink('customer-scheduled-cron-jobs'), + simpleLink('cygwin-windows'), + simpleLink('dashboard'), + simpleLink('date-and-time'), + simpleLink('debug-cache'), + simpleLink('debug-connections'), + simpleLink('debug-slow-performance'), + simpleLink('deploybot'), + simpleLink('develop-drupal'), + simpleLink('develop-wordpress'), + simpleLink('doc-template'), + simpleLink('dreamhost'), + simpleLink('drupal'), + simpleLink('drupal-10'), + simpleLink('drupal-advanced-page-cache'), + simpleLink('drupal-broken-links'), + simpleLink('drupal-cache'), + simpleLink('drupal-caching-views'), + simpleLink('drupal-cloudfront'), + simpleLink('drupal-commerce'), + simpleLink('drupal-composer-managed'), + simpleLink('drupal-configuration-management'), + simpleLink('drupal-cron'), + simpleLink('drupal-from-dist'), + simpleLink('drupal-launch-check'), + simpleLink('drupal-migration'), + simpleLink('drupal-phpstorm'), + simpleLink('drupal-s3'), + simpleLink('drupal-security-patches'), + simpleLink('drupal-to-build-tools'), + simpleLink('drupal-updates'), + simpleLink('drush'), + simpleLink('dyn'), + simpleLink('email'), + simpleLink('enom'), + simpleLink('enterprise-billing-center'), + simpleLink('external-libraries'), + simpleLink('faq'), + simpleLink('gandi'), + simpleLink('glossary/'), + simpleLink('go-live'), + simpleLink('godaddy'), + simpleLink('google'), + simpleLink('guides'), + simpleLink('guides/account-mgmt'), + simpleLink('guides/security'), + simpleLink('guides/wordpress-composer/pre-ga'), + simpleLink('headless'), + simpleLink('horizontal-scalability'), + simpleLink('hotfixes'), + simpleLink('http-to-https'), + simpleLink('inclusive-language'), + simpleLink('integrations'), + simpleLink('jenkins'), + simpleLink('ldap-and-ldaps'), + simpleLink('load-and-performance-testing'), + simpleLink('load-testing-with-blazemeter'), + simpleLink('lockr'), + simpleLink('machine-tokens'), + simpleLink('migrate-cpanel'), + simpleLink('migrate-manual'), + simpleLink('migrate-wordpress-multisite'), + simpleLink('mime-types'), + simpleLink('modules'), + simpleLink('modules-known-issues'), + simpleLink('modules-plugins-known-issues'), + simpleLink('multizone-failover'), + simpleLink('namecheap'), + simpleLink('nested-docroot'), + simpleLink('network-solutions'), + simpleLink('newrelic'), + simpleLink('opensolr'), + simpleLink('optimize-wp-options-table-autoloaded-data'), + simpleLink('oss-support-levels'), + simpleLink('outgoing-ips'), + simpleLink('overview'), + simpleLink('pantheon-community'), + simpleLink('pantheon-workflow'), + simpleLink('pantheon-yml'), + simpleLink('pantheon-yml-overview'), + simpleLink('pantheon_stripped'), + simpleLink('partial-composer'), + simpleLink('performance'), + simpleLink('personal-settings'), + simpleLink('pingdom-uptime-check'), + simpleLink('pivotal-tracker'), + simpleLink('platform-notifications'), + simpleLink('platform-upgrade'), + simpleLink('plugins-known-issues'), + simpleLink('products'), + simpleLink('regions'), + simpleLink('relaunch'), + simpleLink('required-reading'), + simpleLink('rerouting-outbound-email'), + simpleLink('resetting-passwords'), + simpleLink('search/'), + simpleLink('sendgrid'), + simpleLink('server_name-and-server_port'), + simpleLink('services-yml'), + simpleLink('sftp'), + simpleLink('sign-up'), + simpleLink('single-application-sites'), + simpleLink('site-dashboard'), + simpleLink('solr'), + simpleLink('ssh-keys'), + simpleLink('start-state'), + simpleLink('static-site-empty-upstream'), + simpleLink('static-site-empty-upstream-demo'), + simpleLink('style-guide'), + simpleLink('support'), + simpleLink('supported-drupal'), + simpleLink('supported-wp'), + simpleLink('switch-drupal-recommended-upstream'), + simpleLink('symlinks-assumed-write-access'), + simpleLink('tax-exempt-status'), + simpleLink('terminus'), + simpleLink('terminus-demo'), + simpleLink('terminus-drupal-site-management'), + simpleLink('terminus-overview'), + simpleLink('terminus/ci/bitbucket'), + simpleLink('terminus/ci/circleci'), + simpleLink('terminus/ci/github-actions'), + simpleLink('terminus/ci/gitlab'), + simpleLink('terminus/commands'), + simpleLink('terminus/configuration'), + simpleLink('terminus/create'), + simpleLink('terminus/directory'), + simpleLink('terminus/examples'), + simpleLink('terminus/install'), + simpleLink('terminus/plugins'), + simpleLink('terminus/scripting'), + simpleLink('/terminus/supported-terminus'), + simpleLink('/terminus/terminus-3-0'), + simpleLink('/terminus/updates'), + simpleLink('/timeouts'), + simpleLink('/trainers'), + simpleLink('/troubleshoot'), + simpleLink('/unwind-drupal-multisite'), + simpleLink('/upgrade-drupal-with-ic-to-latest'), + simpleLink('/visual-studio-code'), + simpleLink('/wordpress'), + simpleLink('/wordpress-known-issues'), + simpleLink('/workflow-logs'), + simpleLink('/workshops'), + + + + + + + + + + + + + + + + + + + + + ], + }, + + + + + + + + + + { link: '/get-started', title: 'Get Started', @@ -40,6 +258,11 @@ const getOmniItems = () => { getGuideDirectory('guides/launch'), getGuideDirectory('guides/migrate'), getGuideDirectory('guides/wordpress-pantheon'), + + + + + ], }, diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index f9b9a7abcf..916253c09c 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -27,7 +27,7 @@ const turnItemsIntoLinks = (item, activePage) => { * @returns {boolean} - True if the item or any of its children have a link that matches the active page, false otherwise. */ function containsActiveLink(item, activePage) { - if (item.link === activePage) { + if (item.link === "/" + activePage || item.link === activePage) { return true; } else if (item.children && item.children.length > 0) { for (let child of item.children) { From 7ff67e271a71e45003d252e2de75f6a8e8ffbb1a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 19:10:37 -0500 Subject: [PATCH 131/259] more sidebars --- src/components/omniSidebarNav/getOmniItems.js | 411 ++++++++++-------- src/components/omniSidebarNav/helpers.js | 2 +- src/templates/terminuspage.js | 12 + 3 files changed, 232 insertions(+), 193 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 1c08b46a9f..36de2a6155 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -33,6 +33,20 @@ const getOmniItems = () => { + { + link: '/asdfasdf', + title: 'Pages to Delete', + children: [ + simpleLink('/workshops'), + + ] + }, + + + + + + { link: '/asdfasdfasdf', title: 'Unassigned', @@ -40,203 +54,164 @@ const getOmniItems = () => { simpleLink('/'), simpleLink('/add-site'), - simpleLink('add-site-clone'), - simpleLink('add-site-custom-upstream'), - simpleLink('add-site-dashboard'), - simpleLink('addons'), - simpleLink('agency-tips'), - simpleLink('apcu'), - simpleLink('application-containers'), - simpleLink('automate'), - simpleLink('basic-troubleshooting'), - simpleLink('behat'), - simpleLink('billing'), - simpleLink('bots-and-indexing'), - simpleLink('cache'), - simpleLink('cache-control'), - simpleLink('caching-advanced-topics'), - simpleLink('certificate-bundles'), - simpleLink('clamav'), - simpleLink('clear-caches'), - simpleLink('client-ip'), - simpleLink('cloud-optimization'), - simpleLink('code-of-conduct'), - simpleLink('composer'), - simpleLink('composer-convert'), - simpleLink('composer-convert-from-empty'), - simpleLink('configure-dns'), - simpleLink('connection-modes'), - simpleLink('content-staging'), - simpleLink('continuous-integration'), - simpleLink('contribute'), - simpleLink('cookies'), - simpleLink('core-updates'), - simpleLink('crisis-response-upstream'), - simpleLink('custom-certificates'), - simpleLink('custom-upstreams'), - simpleLink('customer-scheduled-cron-jobs'), - simpleLink('cygwin-windows'), - simpleLink('dashboard'), - simpleLink('date-and-time'), - simpleLink('debug-cache'), - simpleLink('debug-connections'), - simpleLink('debug-slow-performance'), - simpleLink('deploybot'), - simpleLink('develop-drupal'), - simpleLink('develop-wordpress'), - simpleLink('doc-template'), - simpleLink('dreamhost'), - simpleLink('drupal'), - simpleLink('drupal-10'), - simpleLink('drupal-advanced-page-cache'), - simpleLink('drupal-broken-links'), - simpleLink('drupal-cache'), - simpleLink('drupal-caching-views'), - simpleLink('drupal-cloudfront'), - simpleLink('drupal-commerce'), - simpleLink('drupal-composer-managed'), - simpleLink('drupal-configuration-management'), - simpleLink('drupal-cron'), - simpleLink('drupal-from-dist'), - simpleLink('drupal-launch-check'), - simpleLink('drupal-migration'), - simpleLink('drupal-phpstorm'), - simpleLink('drupal-s3'), - simpleLink('drupal-security-patches'), - simpleLink('drupal-to-build-tools'), - simpleLink('drupal-updates'), - simpleLink('drush'), - simpleLink('dyn'), - simpleLink('email'), - simpleLink('enom'), - simpleLink('enterprise-billing-center'), - simpleLink('external-libraries'), - simpleLink('faq'), - simpleLink('gandi'), - simpleLink('glossary/'), - simpleLink('go-live'), - simpleLink('godaddy'), - simpleLink('google'), - simpleLink('guides'), - simpleLink('guides/account-mgmt'), - simpleLink('guides/security'), - simpleLink('guides/wordpress-composer/pre-ga'), - simpleLink('headless'), - simpleLink('horizontal-scalability'), - simpleLink('hotfixes'), - simpleLink('http-to-https'), - simpleLink('inclusive-language'), - simpleLink('integrations'), - simpleLink('jenkins'), - simpleLink('ldap-and-ldaps'), - simpleLink('load-and-performance-testing'), - simpleLink('load-testing-with-blazemeter'), - simpleLink('lockr'), - simpleLink('machine-tokens'), - simpleLink('migrate-cpanel'), - simpleLink('migrate-manual'), - simpleLink('migrate-wordpress-multisite'), - simpleLink('mime-types'), - simpleLink('modules'), - simpleLink('modules-known-issues'), - simpleLink('modules-plugins-known-issues'), - simpleLink('multizone-failover'), - simpleLink('namecheap'), - simpleLink('nested-docroot'), - simpleLink('network-solutions'), - simpleLink('newrelic'), - simpleLink('opensolr'), - simpleLink('optimize-wp-options-table-autoloaded-data'), - simpleLink('oss-support-levels'), - simpleLink('outgoing-ips'), - simpleLink('overview'), - simpleLink('pantheon-community'), - simpleLink('pantheon-workflow'), - simpleLink('pantheon-yml'), - simpleLink('pantheon-yml-overview'), - simpleLink('pantheon_stripped'), - simpleLink('partial-composer'), - simpleLink('performance'), - simpleLink('personal-settings'), - simpleLink('pingdom-uptime-check'), - simpleLink('pivotal-tracker'), - simpleLink('platform-notifications'), - simpleLink('platform-upgrade'), - simpleLink('plugins-known-issues'), - simpleLink('products'), - simpleLink('regions'), - simpleLink('relaunch'), - simpleLink('required-reading'), - simpleLink('rerouting-outbound-email'), - simpleLink('resetting-passwords'), - simpleLink('search/'), - simpleLink('sendgrid'), - simpleLink('server_name-and-server_port'), - simpleLink('services-yml'), - simpleLink('sftp'), - simpleLink('sign-up'), - simpleLink('single-application-sites'), - simpleLink('site-dashboard'), - simpleLink('solr'), - simpleLink('ssh-keys'), - simpleLink('start-state'), - simpleLink('static-site-empty-upstream'), - simpleLink('static-site-empty-upstream-demo'), - simpleLink('style-guide'), - simpleLink('support'), - simpleLink('supported-drupal'), - simpleLink('supported-wp'), - simpleLink('switch-drupal-recommended-upstream'), - simpleLink('symlinks-assumed-write-access'), - simpleLink('tax-exempt-status'), - simpleLink('terminus'), - simpleLink('terminus-demo'), - simpleLink('terminus-drupal-site-management'), - simpleLink('terminus-overview'), - simpleLink('terminus/ci/bitbucket'), - simpleLink('terminus/ci/circleci'), - simpleLink('terminus/ci/github-actions'), - simpleLink('terminus/ci/gitlab'), - simpleLink('terminus/commands'), - simpleLink('terminus/configuration'), - simpleLink('terminus/create'), - simpleLink('terminus/directory'), - simpleLink('terminus/examples'), - simpleLink('terminus/install'), - simpleLink('terminus/plugins'), - simpleLink('terminus/scripting'), - simpleLink('/terminus/supported-terminus'), - simpleLink('/terminus/terminus-3-0'), - simpleLink('/terminus/updates'), - simpleLink('/timeouts'), + simpleLink('/add-site-clone'), + simpleLink('/add-site-custom-upstream'), + simpleLink('/add-site-dashboard'), + simpleLink('/addons'), + simpleLink('/agency-tips'), + + + simpleLink('/automate'), + simpleLink('/basic-troubleshooting'), + + + simpleLink('/bots-and-indexing'), + simpleLink('/cache'), + simpleLink('/cache-control'), + simpleLink('/caching-advanced-topics'), + simpleLink('/certificate-bundles'), + simpleLink('/clamav'), + simpleLink('/clear-caches'), + simpleLink('/client-ip'), + simpleLink('/cloud-optimization'), + simpleLink('/code-of-conduct'), + simpleLink('/composer'), + simpleLink('/composer-convert'), + simpleLink('/composer-convert-from-empty'), + simpleLink('/configure-dns'), + simpleLink('/connection-modes'), + simpleLink('/content-staging'), + simpleLink('/continuous-integration'), + simpleLink('/contribute'), + simpleLink('/cookies'), + simpleLink('/core-updates'), + simpleLink('/crisis-response-upstream'), + simpleLink('/custom-certificates'), + simpleLink('/custom-upstreams'), + simpleLink('/customer-scheduled-cron-jobs'), + simpleLink('/cygwin-windows'), + simpleLink('/dashboard'), + simpleLink('/date-and-time'), + simpleLink('/debug-cache'), + simpleLink('/debug-connections'), + simpleLink('/debug-slow-performance'), + simpleLink('/deploybot'), + simpleLink('/develop-drupal'), + simpleLink('/develop-wordpress'), + simpleLink('/doc-template'), + simpleLink('/dreamhost'), + simpleLink('/drupal'), + simpleLink('/drupal-10'), + simpleLink('/drupal-advanced-page-cache'), + simpleLink('/drupal-broken-links'), + simpleLink('/drupal-cache'), + simpleLink('/drupal-caching-views'), + simpleLink('/drupal-cloudfront'), + simpleLink('/drupal-commerce'), + simpleLink('/drupal-composer-managed'), + simpleLink('/drupal-configuration-management'), + simpleLink('/drupal-cron'), + simpleLink('/drupal-from-dist'), + simpleLink('/drupal-launch-check'), + simpleLink('/drupal-migration'), + simpleLink('/drupal-phpstorm'), + simpleLink('/drupal-s3'), + simpleLink('/drupal-security-patches'), + simpleLink('/drupal-to-build-tools'), + simpleLink('/drupal-updates'), + simpleLink('/drush'), + simpleLink('/dyn'), + simpleLink('/email'), + simpleLink('/enom'), + simpleLink('/enterprise-billing-center'), + simpleLink('/external-libraries'), + simpleLink('/faq'), + simpleLink('/gandi'), + simpleLink('/glossary/'), + simpleLink('/go-live'), + simpleLink('/godaddy'), + simpleLink('/google'), + simpleLink('/guides'), + simpleLink('/guides/account-mgmt'), + simpleLink('/guides/security'), + simpleLink('/guides/wordpress-composer/pre-ga'), + + simpleLink('/horizontal-scalability'), + + simpleLink('/http-to-https'), + simpleLink('/inclusive-language'), + simpleLink('/integrations'), + simpleLink('/jenkins'), + simpleLink('/ldap-and-ldaps'), + simpleLink('/load-and-performance-testing'), + simpleLink('/load-testing-with-blazemeter'), + simpleLink('/lockr'), + simpleLink('/machine-tokens'), + simpleLink('/migrate-cpanel'), + simpleLink('/migrate-manual'), + simpleLink('/migrate-wordpress-multisite'), + simpleLink('/mime-types'), + simpleLink('/modules'), + simpleLink('/modules-known-issues'), + simpleLink('/modules-plugins-known-issues'), + simpleLink('/multizone-failover'), + simpleLink('/namecheap'), + simpleLink('/nested-docroot'), + simpleLink('/network-solutions'), + simpleLink('/newrelic'), + simpleLink('/opensolr'), + simpleLink('/optimize-wp-options-table-autoloaded-data'), + simpleLink('/oss-support-levels'), + simpleLink('/outgoing-ips'), + simpleLink('/overview'), + simpleLink('/pantheon-community'), + simpleLink('/pantheon-workflow'), + simpleLink('/pantheon-yml'), + simpleLink('/pantheon-yml-overview'), + simpleLink('/pantheon_stripped'), + simpleLink('/partial-composer'), + simpleLink('/performance'), + simpleLink('/personal-settings'), + simpleLink('/pingdom-uptime-check'), + simpleLink('/pivotal-tracker'), + simpleLink('/platform-notifications'), + simpleLink('/platform-upgrade'), + simpleLink('/plugins-known-issues'), + simpleLink('/products'), + simpleLink('/regions'), + simpleLink('/relaunch'), + simpleLink('/required-reading'), + simpleLink('/rerouting-outbound-email'), + simpleLink('/resetting-passwords'), + simpleLink('/search/'), + simpleLink('/sendgrid'), + simpleLink('/server_name-and-server_port'), + simpleLink('/services-yml'), + simpleLink('/sftp'), + simpleLink('/sign-up'), + simpleLink('/single-application-sites'), + simpleLink('/site-dashboard'), + simpleLink('/solr'), + + simpleLink('/start-state'), + simpleLink('/static-site-empty-upstream'), + simpleLink('/static-site-empty-upstream-demo'), + simpleLink('/style-guide'), + + simpleLink('/supported-drupal'), + simpleLink('/supported-wp'), + simpleLink('/switch-drupal-recommended-upstream'), + simpleLink('/symlinks-assumed-write-access'), + simpleLink('/tax-exempt-status'), + simpleLink('/trainers'), simpleLink('/troubleshoot'), simpleLink('/unwind-drupal-multisite'), simpleLink('/upgrade-drupal-with-ic-to-latest'), - simpleLink('/visual-studio-code'), + simpleLink('/wordpress'), simpleLink('/wordpress-known-issues'), simpleLink('/workflow-logs'), - simpleLink('/workshops'), - - - - - - - - - - - - - - - - - - - ], }, @@ -360,7 +335,10 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), + simpleLink('/timeouts'), + simpleLink('/application-containers'), + simpleLink('/apcu'), getGuideDirectory('guides/php'), getGuideDirectory('guides/logs-pantheon', 'Log files'), getGuideDirectory('guides/filesystem', 'Filesystem'), @@ -368,12 +346,13 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), getGuideDirectory('guides/agcdn'), // delete this guide? getGuideDirectory('guides/fastly-pantheon'), + // This page could use a refresh + simpleLink('/headless'), getGuideDirectory('guides/backups'), getGuideDirectory('guides/disaster-recovery', 'Disaster Recovery Playbook'), getGuideDirectory('guides/edge-integrations', 'Edge Integrations'), getGuideDirectory('guides/errors-and-server-responses'), getGuideDirectory('guides/environment-configuration'), - getGuideDirectory('guides/drupal'), getGuideDirectory('guides/wordpress-developer'), getGuideDirectory('guides/wordpress-configurations'), getGuideDirectory('guides/solr-drupal'), @@ -394,6 +373,7 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), title: 'Development workflows', children: [ getGuideDirectory('guides/git', "Git"), + simpleLink('/hotfixes'), getGuideDirectory('guides/multidev'), getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), @@ -407,6 +387,16 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), getGuideDirectory('guides/build-tools', "build tools"), + { + link: '/asdfasdf', + title: 'Random Tutorials', + children: [ + + simpleLink('/behat'), + simpleLink('/visual-studio-code'), + ] + }, + ], }, @@ -426,6 +416,8 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), getGuideDirectory('guides/enterprise-billing-center'), getGuideDirectory('guides/sso'), getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'), + // @todo, this page is oddly short. + simpleLink('/support'), getGuideDirectory('guides/support', 'Support'), getGuideDirectory('guides/professional-services'), @@ -435,7 +427,8 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), simpleLink('/autopilot', 'Autopilot Overview'), getGuideDirectory('guides/autopilot', 'Autopilot Guide'), getGuideDirectory('guides/autopilot-custom-upstream'), - + simpleLink('/ssh-keys'), + simpleLink('/billing'), ], }, @@ -466,6 +459,40 @@ simpleLink('/dns-made-easy', 'DNS Made Easy'), getGuideDirectory('guides/decoupled/no-starter-kit'), ], }, + + + + + { + link: '/terminus', + title: 'Terminus', + children: [ + // @todo, copy the order from the terminus template + simpleLink('/terminus'), + simpleLink('/terminus-demo'), + simpleLink('/terminus-drupal-site-management'), + simpleLink('/terminus-overview'), + simpleLink('/terminus/ci/bitbucket'), + simpleLink('/terminus/ci/circleci'), + simpleLink('/terminus/ci/github-actions'), + simpleLink('/terminus/ci/gitlab'), + simpleLink('/terminus/commands'), + simpleLink('/terminus/configuration'), + simpleLink('/terminus/create'), + simpleLink('/terminus/directory'), + simpleLink('/terminus/examples'), + simpleLink('/terminus/install'), + simpleLink('/terminus/plugins'), + simpleLink('/terminus/scripting'), + simpleLink('/terminus/supported-terminus'), + simpleLink('/terminus/terminus-3-0'), + simpleLink('/terminus/updates'), + ] + }, + + + + { link: '/certification', title: 'WebOps Certification', diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 916253c09c..9b1b54390c 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -11,7 +11,7 @@ import { Link } from 'gatsby'; */ const turnItemsIntoLinks = (item, activePage) => { return { - isActive: item.link === activePage, + isActive: item.link === activePage || item.link === "/" + activePage, links: item.children ? item.children.map((child) => turnItemsIntoLinks(child, activePage)) : false, diff --git a/src/templates/terminuspage.js b/src/templates/terminuspage.js index a9b34787d9..1b6775679d 100644 --- a/src/templates/terminuspage.js +++ b/src/templates/terminuspage.js @@ -10,6 +10,8 @@ import GetFeedback from "../components/getFeedback" import MdxWrapper from "../components/mdxWrapper" import { SidebarLayout } from "@pantheon-systems/pds-toolkit-react" +import OmniSidebarNav from "../components/omniSidebarNav"; + // @TODO relocate this list // - To a YAML file and use GraphQL to pull data. @@ -152,6 +154,16 @@ class TerminusTemplate extends React.Component { className="terminus" >
+ + + + + + + + Date: Sat, 13 Jul 2024 19:13:03 -0500 Subject: [PATCH 132/259] moving simpleLink to helper --- src/components/omniSidebarNav/getOmniItems.js | 15 +----------- src/components/omniSidebarNav/helpers.js | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 36de2a6155..aceb6a4463 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,19 +1,6 @@ import CertificationItems from './submenus/certification'; -import { getGuideDirectory } from './helpers'; +import { getGuideDirectory, simpleLink } from './helpers'; -function simpleLink(link, title= '', children = []) { - - const returning = { - link: link, - title: title || link, - }; - - if (children.length > 0) { - returning.children = children; - } - return returning; - -} /** * Retrieves the all the menu items for the sidebar navigation. diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js index 9b1b54390c..55b97b2895 100644 --- a/src/components/omniSidebarNav/helpers.js +++ b/src/components/omniSidebarNav/helpers.js @@ -105,9 +105,32 @@ const getGuideDirectory = (guideDirectory, overrideGuideTitle = '', AllGuides = }; }; + + + + +const simpleLink = (link, title = '', children = []) => { + + const returning = { + link: link, + title: title || link, + }; + + if (children.length > 0) { + returning.children = children; + } + return returning; + +} + + + + + export { findSubMenuItemsToUse, getGuideDirectory, getOmniSidebarActiveSection, turnItemsIntoLinks, + simpleLink }; From 866cc48db5eff32184024cae3f5cc6155d4200a3 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 19:22:39 -0500 Subject: [PATCH 133/259] breaking out file for submenu --- src/components/omniSidebarNav/getOmniItems.js | 20 ++----------------- .../omniSidebarNav/submenus/getStarted.js | 18 +++++++++++++++++ 2 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/getStarted.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index aceb6a4463..ea330b07e4 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -1,6 +1,7 @@ import CertificationItems from './submenus/certification'; import { getGuideDirectory, simpleLink } from './helpers'; +import getStarted from './submenus/getStarted'; /** * Retrieves the all the menu items for the sidebar navigation. @@ -210,24 +211,7 @@ const getOmniItems = () => { - - - { - link: '/get-started', - title: 'Get Started', - children: [ - getGuideDirectory('guides/getstarted'), - getGuideDirectory('guides/launch'), - getGuideDirectory('guides/migrate'), - getGuideDirectory('guides/wordpress-pantheon'), - - - - - - ], - }, - +getStarted(), { diff --git a/src/components/omniSidebarNav/submenus/getStarted.js b/src/components/omniSidebarNav/submenus/getStarted.js new file mode 100644 index 0000000000..9386f3bdf1 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/getStarted.js @@ -0,0 +1,18 @@ +import { getGuideDirectory } from './../helpers'; + +const getStarted = () => { + return { + + link: '/get-started', + title: 'Get Started', + children: [ + getGuideDirectory('guides/getstarted'), + getGuideDirectory('guides/launch', 'Launch'), + // Move to Infra? + getGuideDirectory('guides/wordpress-pantheon', 'WordPress on Pantheon'), + ], + + } +}; + +export default getStarted; From e7a46aa66d0a5086404a7294c5b06f5d076638f3 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 20:23:50 -0500 Subject: [PATCH 134/259] breaking out menus --- src/components/omniSidebarNav/getOmniItems.js | 61 ++----------------- .../omniSidebarNav/submenus/dnsProviders.js | 33 ++++++++++ .../omniSidebarNav/submenus/getStarted.js | 1 - .../omniSidebarNav/submenus/pagesToDelete.js | 15 +++++ 4 files changed, 52 insertions(+), 58 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/dnsProviders.js create mode 100644 src/components/omniSidebarNav/submenus/pagesToDelete.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index ea330b07e4..b8c25c347c 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -2,6 +2,8 @@ import CertificationItems from './submenus/certification'; import { getGuideDirectory, simpleLink } from './helpers'; import getStarted from './submenus/getStarted'; +import dnsProviders from './submenus/dnsProviders'; +import pagesToDelete from './submenus/pagesToDelete'; /** * Retrieves the all the menu items for the sidebar navigation. @@ -12,23 +14,7 @@ const getOmniItems = () => { // about docs // /contribute - - - -// DNS providers dns-providers -// 1-and-1 - - - - - { - link: '/asdfasdf', - title: 'Pages to Delete', - children: [ - simpleLink('/workshops'), - - ] - }, + pagesToDelete(), @@ -39,7 +25,6 @@ const getOmniItems = () => { link: '/asdfasdfasdf', title: 'Unassigned', children: [ - simpleLink('/'), simpleLink('/add-site'), simpleLink('/add-site-clone'), @@ -47,12 +32,8 @@ const getOmniItems = () => { simpleLink('/add-site-dashboard'), simpleLink('/addons'), simpleLink('/agency-tips'), - - simpleLink('/automate'), simpleLink('/basic-troubleshooting'), - - simpleLink('/bots-and-indexing'), simpleLink('/cache'), simpleLink('/cache-control'), @@ -123,9 +104,7 @@ const getOmniItems = () => { simpleLink('/guides/account-mgmt'), simpleLink('/guides/security'), simpleLink('/guides/wordpress-composer/pre-ga'), - simpleLink('/horizontal-scalability'), - simpleLink('/http-to-https'), simpleLink('/inclusive-language'), simpleLink('/integrations'), @@ -180,23 +159,19 @@ const getOmniItems = () => { simpleLink('/single-application-sites'), simpleLink('/site-dashboard'), simpleLink('/solr'), - simpleLink('/start-state'), simpleLink('/static-site-empty-upstream'), simpleLink('/static-site-empty-upstream-demo'), simpleLink('/style-guide'), - simpleLink('/supported-drupal'), simpleLink('/supported-wp'), simpleLink('/switch-drupal-recommended-upstream'), simpleLink('/symlinks-assumed-write-access'), simpleLink('/tax-exempt-status'), - simpleLink('/trainers'), simpleLink('/troubleshoot'), simpleLink('/unwind-drupal-multisite'), simpleLink('/upgrade-drupal-with-ic-to-latest'), - simpleLink('/wordpress'), simpleLink('/wordpress-known-issues'), simpleLink('/workflow-logs'), @@ -212,35 +187,7 @@ const getOmniItems = () => { getStarted(), - - - { - link: '/dns-providers', - title: 'DNS Providers', - children: [ -/* - 1 & 1 - Amazon Route 53 - Cloudflare - DNS Made Easy - DreamHost - Dyn - Enom - Gandi - GoDaddy - Google - Namecheap - Network Solutions -*/ - simpleLink('/1-and-1', '1 & 1'), - simpleLink('/route53', 'Amazon Route 53'), -simpleLink('/cloudflare', 'Cloudflare'), -simpleLink('/dns-made-easy', 'DNS Made Easy'), - - - ], - }, - +dnsProviders(), { link: '/asdf', diff --git a/src/components/omniSidebarNav/submenus/dnsProviders.js b/src/components/omniSidebarNav/submenus/dnsProviders.js new file mode 100644 index 0000000000..61db2c968c --- /dev/null +++ b/src/components/omniSidebarNav/submenus/dnsProviders.js @@ -0,0 +1,33 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const dnsProviders = () => { + return { + link: '/dns-providers', + title: 'DNS Providers', + children: [ + /* + 1 & 1 + Amazon Route 53 + Cloudflare + DNS Made Easy + DreamHost + Dyn + Enom + Gandi + GoDaddy + Google + Namecheap + Network Solutions + */ + simpleLink('/1-and-1', '1 & 1'), + simpleLink('/route53', 'Amazon Route 53'), + simpleLink('/cloudflare', 'Cloudflare'), + simpleLink('/dns-made-easy', 'DNS Made Easy'), + + + ], + } + +}; + +export default dnsProviders; diff --git a/src/components/omniSidebarNav/submenus/getStarted.js b/src/components/omniSidebarNav/submenus/getStarted.js index 9386f3bdf1..7ca65c6813 100644 --- a/src/components/omniSidebarNav/submenus/getStarted.js +++ b/src/components/omniSidebarNav/submenus/getStarted.js @@ -11,7 +11,6 @@ const getStarted = () => { // Move to Infra? getGuideDirectory('guides/wordpress-pantheon', 'WordPress on Pantheon'), ], - } }; diff --git a/src/components/omniSidebarNav/submenus/pagesToDelete.js b/src/components/omniSidebarNav/submenus/pagesToDelete.js new file mode 100644 index 0000000000..82739cfb37 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/pagesToDelete.js @@ -0,0 +1,15 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const dnsProviders = () => { + return { + link: '/asdfasdf', + title: 'Pages to Delete', + children: [ + simpleLink('/workshops'), + + ] + } + +}; + +export default dnsProviders; From fded07ed600e94a0bc3277471de7d7331f1bd547 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 20:32:21 -0500 Subject: [PATCH 135/259] two more --- src/components/omniSidebarNav/getOmniItems.js | 220 +----------------- .../submenus/migrateAndUpgrade.js | 49 ++++ .../submenus/unassignedPages.js | 164 +++++++++++++ 3 files changed, 219 insertions(+), 214 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/migrateAndUpgrade.js create mode 100644 src/components/omniSidebarNav/submenus/unassignedPages.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index b8c25c347c..5e0ecaf782 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -4,6 +4,8 @@ import { getGuideDirectory, simpleLink } from './helpers'; import getStarted from './submenus/getStarted'; import dnsProviders from './submenus/dnsProviders'; import pagesToDelete from './submenus/pagesToDelete'; +import unassignedPages from './submenus/unassignedPages'; +import migrateAndUpgrade from './submenus/migrateAndUpgrade'; /** * Retrieves the all the menu items for the sidebar navigation. @@ -15,223 +17,13 @@ const getOmniItems = () => { // /contribute pagesToDelete(), + unassignedPages(), + getStarted(), + dnsProviders(), + migrateAndUpgrade(), - - - - { - link: '/asdfasdfasdf', - title: 'Unassigned', - children: [ - simpleLink('/'), - simpleLink('/add-site'), - simpleLink('/add-site-clone'), - simpleLink('/add-site-custom-upstream'), - simpleLink('/add-site-dashboard'), - simpleLink('/addons'), - simpleLink('/agency-tips'), - simpleLink('/automate'), - simpleLink('/basic-troubleshooting'), - simpleLink('/bots-and-indexing'), - simpleLink('/cache'), - simpleLink('/cache-control'), - simpleLink('/caching-advanced-topics'), - simpleLink('/certificate-bundles'), - simpleLink('/clamav'), - simpleLink('/clear-caches'), - simpleLink('/client-ip'), - simpleLink('/cloud-optimization'), - simpleLink('/code-of-conduct'), - simpleLink('/composer'), - simpleLink('/composer-convert'), - simpleLink('/composer-convert-from-empty'), - simpleLink('/configure-dns'), - simpleLink('/connection-modes'), - simpleLink('/content-staging'), - simpleLink('/continuous-integration'), - simpleLink('/contribute'), - simpleLink('/cookies'), - simpleLink('/core-updates'), - simpleLink('/crisis-response-upstream'), - simpleLink('/custom-certificates'), - simpleLink('/custom-upstreams'), - simpleLink('/customer-scheduled-cron-jobs'), - simpleLink('/cygwin-windows'), - simpleLink('/dashboard'), - simpleLink('/date-and-time'), - simpleLink('/debug-cache'), - simpleLink('/debug-connections'), - simpleLink('/debug-slow-performance'), - simpleLink('/deploybot'), - simpleLink('/develop-drupal'), - simpleLink('/develop-wordpress'), - simpleLink('/doc-template'), - simpleLink('/dreamhost'), - simpleLink('/drupal'), - simpleLink('/drupal-10'), - simpleLink('/drupal-advanced-page-cache'), - simpleLink('/drupal-broken-links'), - simpleLink('/drupal-cache'), - simpleLink('/drupal-caching-views'), - simpleLink('/drupal-cloudfront'), - simpleLink('/drupal-commerce'), - simpleLink('/drupal-composer-managed'), - simpleLink('/drupal-configuration-management'), - simpleLink('/drupal-cron'), - simpleLink('/drupal-from-dist'), - simpleLink('/drupal-launch-check'), - simpleLink('/drupal-migration'), - simpleLink('/drupal-phpstorm'), - simpleLink('/drupal-s3'), - simpleLink('/drupal-security-patches'), - simpleLink('/drupal-to-build-tools'), - simpleLink('/drupal-updates'), - simpleLink('/drush'), - simpleLink('/dyn'), - simpleLink('/email'), - simpleLink('/enom'), - simpleLink('/enterprise-billing-center'), - simpleLink('/external-libraries'), - simpleLink('/faq'), - simpleLink('/gandi'), - simpleLink('/glossary/'), - simpleLink('/go-live'), - simpleLink('/godaddy'), - simpleLink('/google'), - simpleLink('/guides'), - simpleLink('/guides/account-mgmt'), - simpleLink('/guides/security'), - simpleLink('/guides/wordpress-composer/pre-ga'), - simpleLink('/horizontal-scalability'), - simpleLink('/http-to-https'), - simpleLink('/inclusive-language'), - simpleLink('/integrations'), - simpleLink('/jenkins'), - simpleLink('/ldap-and-ldaps'), - simpleLink('/load-and-performance-testing'), - simpleLink('/load-testing-with-blazemeter'), - simpleLink('/lockr'), - simpleLink('/machine-tokens'), - simpleLink('/migrate-cpanel'), - simpleLink('/migrate-manual'), - simpleLink('/migrate-wordpress-multisite'), - simpleLink('/mime-types'), - simpleLink('/modules'), - simpleLink('/modules-known-issues'), - simpleLink('/modules-plugins-known-issues'), - simpleLink('/multizone-failover'), - simpleLink('/namecheap'), - simpleLink('/nested-docroot'), - simpleLink('/network-solutions'), - simpleLink('/newrelic'), - simpleLink('/opensolr'), - simpleLink('/optimize-wp-options-table-autoloaded-data'), - simpleLink('/oss-support-levels'), - simpleLink('/outgoing-ips'), - simpleLink('/overview'), - simpleLink('/pantheon-community'), - simpleLink('/pantheon-workflow'), - simpleLink('/pantheon-yml'), - simpleLink('/pantheon-yml-overview'), - simpleLink('/pantheon_stripped'), - simpleLink('/partial-composer'), - simpleLink('/performance'), - simpleLink('/personal-settings'), - simpleLink('/pingdom-uptime-check'), - simpleLink('/pivotal-tracker'), - simpleLink('/platform-notifications'), - simpleLink('/platform-upgrade'), - simpleLink('/plugins-known-issues'), - simpleLink('/products'), - simpleLink('/regions'), - simpleLink('/relaunch'), - simpleLink('/required-reading'), - simpleLink('/rerouting-outbound-email'), - simpleLink('/resetting-passwords'), - simpleLink('/search/'), - simpleLink('/sendgrid'), - simpleLink('/server_name-and-server_port'), - simpleLink('/services-yml'), - simpleLink('/sftp'), - simpleLink('/sign-up'), - simpleLink('/single-application-sites'), - simpleLink('/site-dashboard'), - simpleLink('/solr'), - simpleLink('/start-state'), - simpleLink('/static-site-empty-upstream'), - simpleLink('/static-site-empty-upstream-demo'), - simpleLink('/style-guide'), - simpleLink('/supported-drupal'), - simpleLink('/supported-wp'), - simpleLink('/switch-drupal-recommended-upstream'), - simpleLink('/symlinks-assumed-write-access'), - simpleLink('/tax-exempt-status'), - simpleLink('/trainers'), - simpleLink('/troubleshoot'), - simpleLink('/unwind-drupal-multisite'), - simpleLink('/upgrade-drupal-with-ic-to-latest'), - simpleLink('/wordpress'), - simpleLink('/wordpress-known-issues'), - simpleLink('/workflow-logs'), - - ], - }, - - - - - - - - -getStarted(), -dnsProviders(), - - { - link: '/asdf', - title: 'Migrating and upgrading', - children: [ - { - link: '/migrate-wordpress', - title: 'migrate-wordpress', - children: [ - getGuideDirectory('guides/migrate/kinsta', 'Kinsta'), - getGuideDirectory('guides/migrate/pagely', 'Pagely'), - getGuideDirectory('guides/migrate/wordpressvip', 'WordPress VIP'), - getGuideDirectory('guides/migrate/wpengine', 'WP Engine'), - ], - }, - - getGuideDirectory('guides/migrate/acquia', 'Acquia'), - - getGuideDirectory('guides/migrate/guided', 'Guided Migration'), - getGuideDirectory('guides/migrate/manual-d8-composer-to-d8', 'Manual d8 to d8'), - getGuideDirectory('guides/migrate/platformsh', 'Platform.sh'), - - - // Needs a title override - getGuideDirectory('guides/drupal/drupal-hosted-createcustom', 'drupal-hosted-createcustom'), - - // needs a title override - getGuideDirectory('guides/drupal/drupal-hosted-btworkflow', 'drupal-hosted-btworkflow'), - - getGuideDirectory('guides/drupal/drupal-hosted-createbt', 'drupal-hosted-createbt'), - - getGuideDirectory('guides/drupal/drupal-hosted-createdashboard-set8', 'drupal-hosted-createdashboard-set8'), - getGuideDirectory('guides/drupal/drupal-hosted-createempty-md', 'drupal-hosted-createempty-md'), - getGuideDirectory('guides/drupal/drupal-hosted-md', 'drupal-hosted-md'), - getGuideDirectory('guides/drupal/drupal-unhosted', 'unhosted???'), - getGuideDirectory('guides/drupal/drupal-unhosted-composer', 'unhosted-composer'), - getGuideDirectory('guides/drupal/drupal-hosted', 'drupal-hosted'), - getGuideDirectory('guides/integrated-composer'), - - - ], - }, - - { link: '/platform', title: 'Web Infrastructure', diff --git a/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js b/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js new file mode 100644 index 0000000000..f68cf51c87 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js @@ -0,0 +1,49 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const migrateAndUpgrade = () => { + return { + link: '/asdf', + title: 'Migrating and upgrading', + children: [ + { + link: '/migrate-wordpress', + title: 'migrate-wordpress', + children: [ + getGuideDirectory('guides/migrate/kinsta', 'Kinsta'), + getGuideDirectory('guides/migrate/pagely', 'Pagely'), + getGuideDirectory('guides/migrate/wordpressvip', 'WordPress VIP'), + getGuideDirectory('guides/migrate/wpengine', 'WP Engine'), + ], + }, + + getGuideDirectory('guides/migrate/acquia', 'Acquia'), + + getGuideDirectory('guides/migrate/guided', 'Guided Migration'), + getGuideDirectory('guides/migrate/manual-d8-composer-to-d8', 'Manual d8 to d8'), + getGuideDirectory('guides/migrate/platformsh', 'Platform.sh'), + + + // Needs a title override + getGuideDirectory('guides/drupal/drupal-hosted-createcustom', 'drupal-hosted-createcustom'), + + // needs a title override + getGuideDirectory('guides/drupal/drupal-hosted-btworkflow', 'drupal-hosted-btworkflow'), + + getGuideDirectory('guides/drupal/drupal-hosted-createbt', 'drupal-hosted-createbt'), + + getGuideDirectory('guides/drupal/drupal-hosted-createdashboard-set8', 'drupal-hosted-createdashboard-set8'), + getGuideDirectory('guides/drupal/drupal-hosted-createempty-md', 'drupal-hosted-createempty-md'), + getGuideDirectory('guides/drupal/drupal-hosted-md', 'drupal-hosted-md'), + getGuideDirectory('guides/drupal/drupal-unhosted', 'unhosted???'), + getGuideDirectory('guides/drupal/drupal-unhosted-composer', 'unhosted-composer'), + getGuideDirectory('guides/drupal/drupal-hosted', 'drupal-hosted'), + getGuideDirectory('guides/integrated-composer'), + + + ], + } + + +}; + +export default migrateAndUpgrade; diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js new file mode 100644 index 0000000000..c6c726ab49 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -0,0 +1,164 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const unassignedPages = () => { + return { + link: '/asdfasdfasdf', + title: 'Unassigned', + children: [ + simpleLink('/'), + simpleLink('/add-site'), + simpleLink('/add-site-clone'), + simpleLink('/add-site-custom-upstream'), + simpleLink('/add-site-dashboard'), + simpleLink('/addons'), + simpleLink('/agency-tips'), + simpleLink('/automate'), + simpleLink('/basic-troubleshooting'), + simpleLink('/bots-and-indexing'), + simpleLink('/cache'), + simpleLink('/cache-control'), + simpleLink('/caching-advanced-topics'), + simpleLink('/certificate-bundles'), + simpleLink('/clamav'), + simpleLink('/clear-caches'), + simpleLink('/client-ip'), + simpleLink('/cloud-optimization'), + simpleLink('/code-of-conduct'), + simpleLink('/composer'), + simpleLink('/composer-convert'), + simpleLink('/composer-convert-from-empty'), + simpleLink('/configure-dns'), + simpleLink('/connection-modes'), + simpleLink('/content-staging'), + simpleLink('/continuous-integration'), + simpleLink('/contribute'), + simpleLink('/cookies'), + simpleLink('/core-updates'), + simpleLink('/crisis-response-upstream'), + simpleLink('/custom-certificates'), + simpleLink('/custom-upstreams'), + simpleLink('/customer-scheduled-cron-jobs'), + simpleLink('/cygwin-windows'), + simpleLink('/dashboard'), + simpleLink('/date-and-time'), + simpleLink('/debug-cache'), + simpleLink('/debug-connections'), + simpleLink('/debug-slow-performance'), + simpleLink('/deploybot'), + simpleLink('/develop-drupal'), + simpleLink('/develop-wordpress'), + simpleLink('/doc-template'), + simpleLink('/dreamhost'), + simpleLink('/drupal'), + simpleLink('/drupal-10'), + simpleLink('/drupal-advanced-page-cache'), + simpleLink('/drupal-broken-links'), + simpleLink('/drupal-cache'), + simpleLink('/drupal-caching-views'), + simpleLink('/drupal-cloudfront'), + simpleLink('/drupal-commerce'), + simpleLink('/drupal-composer-managed'), + simpleLink('/drupal-configuration-management'), + simpleLink('/drupal-cron'), + simpleLink('/drupal-from-dist'), + simpleLink('/drupal-launch-check'), + simpleLink('/drupal-migration'), + simpleLink('/drupal-phpstorm'), + simpleLink('/drupal-s3'), + simpleLink('/drupal-security-patches'), + simpleLink('/drupal-to-build-tools'), + simpleLink('/drupal-updates'), + simpleLink('/drush'), + simpleLink('/dyn'), + simpleLink('/email'), + simpleLink('/enom'), + simpleLink('/enterprise-billing-center'), + simpleLink('/external-libraries'), + simpleLink('/faq'), + simpleLink('/gandi'), + simpleLink('/glossary/'), + simpleLink('/go-live'), + simpleLink('/godaddy'), + simpleLink('/google'), + simpleLink('/guides'), + simpleLink('/guides/account-mgmt'), + simpleLink('/guides/security'), + simpleLink('/guides/wordpress-composer/pre-ga'), + simpleLink('/horizontal-scalability'), + simpleLink('/http-to-https'), + simpleLink('/inclusive-language'), + simpleLink('/integrations'), + simpleLink('/jenkins'), + simpleLink('/ldap-and-ldaps'), + simpleLink('/load-and-performance-testing'), + simpleLink('/load-testing-with-blazemeter'), + simpleLink('/lockr'), + simpleLink('/machine-tokens'), + simpleLink('/migrate-cpanel'), + simpleLink('/migrate-manual'), + simpleLink('/migrate-wordpress-multisite'), + simpleLink('/mime-types'), + simpleLink('/modules'), + simpleLink('/modules-known-issues'), + simpleLink('/modules-plugins-known-issues'), + simpleLink('/multizone-failover'), + simpleLink('/namecheap'), + simpleLink('/nested-docroot'), + simpleLink('/network-solutions'), + simpleLink('/newrelic'), + simpleLink('/opensolr'), + simpleLink('/optimize-wp-options-table-autoloaded-data'), + simpleLink('/oss-support-levels'), + simpleLink('/outgoing-ips'), + simpleLink('/overview'), + simpleLink('/pantheon-community'), + simpleLink('/pantheon-workflow'), + simpleLink('/pantheon-yml'), + simpleLink('/pantheon-yml-overview'), + simpleLink('/pantheon_stripped'), + simpleLink('/partial-composer'), + simpleLink('/performance'), + simpleLink('/personal-settings'), + simpleLink('/pingdom-uptime-check'), + simpleLink('/pivotal-tracker'), + simpleLink('/platform-notifications'), + simpleLink('/platform-upgrade'), + simpleLink('/plugins-known-issues'), + simpleLink('/products'), + simpleLink('/regions'), + simpleLink('/relaunch'), + simpleLink('/required-reading'), + simpleLink('/rerouting-outbound-email'), + simpleLink('/resetting-passwords'), + simpleLink('/search/'), + simpleLink('/sendgrid'), + simpleLink('/server_name-and-server_port'), + simpleLink('/services-yml'), + simpleLink('/sftp'), + simpleLink('/sign-up'), + simpleLink('/single-application-sites'), + simpleLink('/site-dashboard'), + simpleLink('/solr'), + simpleLink('/start-state'), + simpleLink('/static-site-empty-upstream'), + simpleLink('/static-site-empty-upstream-demo'), + simpleLink('/style-guide'), + simpleLink('/supported-drupal'), + simpleLink('/supported-wp'), + simpleLink('/switch-drupal-recommended-upstream'), + simpleLink('/symlinks-assumed-write-access'), + simpleLink('/tax-exempt-status'), + simpleLink('/trainers'), + simpleLink('/troubleshoot'), + simpleLink('/unwind-drupal-multisite'), + simpleLink('/upgrade-drupal-with-ic-to-latest'), + simpleLink('/wordpress'), + simpleLink('/wordpress-known-issues'), + simpleLink('/workflow-logs'), + + ], + } + +}; + +export default unassignedPages; From 17d7567061e3d4eb9c03156ad7b72cecb11323f5 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 20:48:00 -0500 Subject: [PATCH 136/259] breaking out menus --- src/components/omniSidebarNav/getOmniItems.js | 191 +----------------- .../submenus/accountManagement.js | 35 ++++ .../omniSidebarNav/submenus/frontEndSites.js | 20 ++ .../omniSidebarNav/submenus/integrations.js | 17 ++ .../omniSidebarNav/submenus/terminus.js | 33 +++ .../submenus/webInfrastructure.js | 52 +++++ .../omniSidebarNav/submenus/workflows.js | 34 ++++ 7 files changed, 201 insertions(+), 181 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/accountManagement.js create mode 100644 src/components/omniSidebarNav/submenus/frontEndSites.js create mode 100644 src/components/omniSidebarNav/submenus/integrations.js create mode 100644 src/components/omniSidebarNav/submenus/terminus.js create mode 100644 src/components/omniSidebarNav/submenus/webInfrastructure.js create mode 100644 src/components/omniSidebarNav/submenus/workflows.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index 5e0ecaf782..c8a72501f9 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -6,6 +6,11 @@ import dnsProviders from './submenus/dnsProviders'; import pagesToDelete from './submenus/pagesToDelete'; import unassignedPages from './submenus/unassignedPages'; import migrateAndUpgrade from './submenus/migrateAndUpgrade'; +import webInfrastructure from './submenus/webInfrastructure'; +import accountManagement from './submenus/accountManagement'; +import integrations from './submenus/integrations'; +import frontEndSites from './submenus/frontEndSites'; +import terminus from './submenus/terminus'; /** * Retrieves the all the menu items for the sidebar navigation. @@ -21,187 +26,11 @@ const getOmniItems = () => { getStarted(), dnsProviders(), migrateAndUpgrade(), - - - - { - link: '/platform', - title: 'Web Infrastructure', - children: [ - - - simpleLink('/object-cache', 'Object Cache', [ - - simpleLink('/object-cache/cli', 'CLI'), - simpleLink('/object-cache/drupal', 'Drupal'), - simpleLink('/object-cache/errors', 'Errors'), - simpleLink('/object-cache/faq', 'FAQ'), - simpleLink('/object-cache/remove', 'remove'), - simpleLink('/object-cache/wordpress', 'WordPress'), - simpleLink('/object-cache/wordpress-deprecated', 'WordPress deprecated'), - - ]), - - - - - simpleLink('/timeouts'), - - simpleLink('/application-containers'), - simpleLink('/apcu'), - getGuideDirectory('guides/php'), - getGuideDirectory('guides/logs-pantheon', 'Log files'), - getGuideDirectory('guides/filesystem', 'Filesystem'), - getGuideDirectory('guides/global-cdn', 'Global CDN'), - getGuideDirectory('guides/agcdn'), - // delete this guide? - getGuideDirectory('guides/fastly-pantheon'), - // This page could use a refresh - simpleLink('/headless'), - getGuideDirectory('guides/backups'), - getGuideDirectory('guides/disaster-recovery', 'Disaster Recovery Playbook'), - getGuideDirectory('guides/edge-integrations', 'Edge Integrations'), - getGuideDirectory('guides/errors-and-server-responses'), - getGuideDirectory('guides/environment-configuration'), - getGuideDirectory('guides/wordpress-developer'), - getGuideDirectory('guides/wordpress-configurations'), - getGuideDirectory('guides/solr-drupal'), - getGuideDirectory('guides/redirect'), - getGuideDirectory('guides/mariadb-mysql'), - getGuideDirectory('guides/platform-considerations'), - getGuideDirectory('guides/frontend-performance'), - getGuideDirectory('guides/woocommerce', "WooCommerce"), - getGuideDirectory('guides/multisite', "WordPress Multisite"), - - - ], - }, - - - { - link: '/develop', - title: 'Development workflows', - children: [ - getGuideDirectory('guides/git', "Git"), - simpleLink('/hotfixes'), - - getGuideDirectory('guides/multidev'), - getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), - getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), - getGuideDirectory('guides/sftp', 'SFTP'), - getGuideDirectory('guides/wp-cli', 'WP-CLI'), - getGuideDirectory('guides/drush', 'Drush (the Drupal CLI)'), - getGuideDirectory('guides/quicksilver', 'Quicksilver Workflow Hooks'), - getGuideDirectory('guides/local-development', 'Local Development'), - // maybe move this to a "tutorial" section - getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), - getGuideDirectory('guides/build-tools', "build tools"), - - { - link: '/asdfasdf', - title: 'Random Tutorials', - children: [ - - simpleLink('/behat'), - simpleLink('/visual-studio-code'), - ] - }, - - ], - }, - - - - - - { - link: '/manage', - title: 'Account Management', - children: [ - getGuideDirectory('guides/account-mgmt/account'), - getGuideDirectory('guides/account-mgmt/billing'), - getGuideDirectory('guides/account-mgmt/plans'), - getGuideDirectory('guides/account-mgmt/traffic'), - getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), - getGuideDirectory('guides/enterprise-billing-center'), - getGuideDirectory('guides/sso'), - getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'), - // @todo, this page is oddly short. - simpleLink('/support'), - getGuideDirectory('guides/support', 'Support'), - getGuideDirectory('guides/professional-services'), - - getGuideDirectory('guides/domains'), - getGuideDirectory('guides/custom-upstream'), - getGuideDirectory('guides/secure-development'), - simpleLink('/autopilot', 'Autopilot Overview'), - getGuideDirectory('guides/autopilot', 'Autopilot Guide'), - getGuideDirectory('guides/autopilot-custom-upstream'), - simpleLink('/ssh-keys'), - simpleLink('/billing'), - - ], - }, - - - { - link: '/asdfasdfasdf', - // better name for this section needed - title: 'Futher Integrations', - children: [ - getGuideDirectory('guides/pagerduty'), - getGuideDirectory('guides/accessibility'), - - ], - }, - - - { - link: '/guides/decoupled', - title: 'Front-End Sites and Starter Kits', - children: [ - getGuideDirectory('guides/decoupled/overview'), - getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), - getGuideDirectory('guides/decoupled/wp-backend-starters'), - getGuideDirectory('guides/decoupled/wp-gatsby-frontend-starters'), - getGuideDirectory('guides/decoupled/drupal-backend-starters'), - getGuideDirectory('guides/decoupled/drupal-nextjs-frontend-starters'), - getGuideDirectory('guides/decoupled/no-starter-kit'), - ], - }, - - - - - { - link: '/terminus', - title: 'Terminus', - children: [ - // @todo, copy the order from the terminus template - simpleLink('/terminus'), - simpleLink('/terminus-demo'), - simpleLink('/terminus-drupal-site-management'), - simpleLink('/terminus-overview'), - simpleLink('/terminus/ci/bitbucket'), - simpleLink('/terminus/ci/circleci'), - simpleLink('/terminus/ci/github-actions'), - simpleLink('/terminus/ci/gitlab'), - simpleLink('/terminus/commands'), - simpleLink('/terminus/configuration'), - simpleLink('/terminus/create'), - simpleLink('/terminus/directory'), - simpleLink('/terminus/examples'), - simpleLink('/terminus/install'), - simpleLink('/terminus/plugins'), - simpleLink('/terminus/scripting'), - simpleLink('/terminus/supported-terminus'), - simpleLink('/terminus/terminus-3-0'), - simpleLink('/terminus/updates'), - ] - }, - - - + webInfrastructure(), + accountManagement(), + integrations(), + frontEndSites(), + terminus(), { link: '/certification', diff --git a/src/components/omniSidebarNav/submenus/accountManagement.js b/src/components/omniSidebarNav/submenus/accountManagement.js new file mode 100644 index 0000000000..3ba17b25f8 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/accountManagement.js @@ -0,0 +1,35 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const accountManagement = () => { + return { + link: '/manage', + title: 'Account Management', + children: [ + getGuideDirectory('guides/account-mgmt/account'), + getGuideDirectory('guides/account-mgmt/billing'), + getGuideDirectory('guides/account-mgmt/plans'), + getGuideDirectory('guides/account-mgmt/traffic'), + getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), + getGuideDirectory('guides/enterprise-billing-center'), + getGuideDirectory('guides/sso'), + getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'), + // @todo, this page is oddly short. + simpleLink('/support'), + getGuideDirectory('guides/support', 'Support'), + getGuideDirectory('guides/professional-services'), + + getGuideDirectory('guides/domains'), + getGuideDirectory('guides/custom-upstream'), + getGuideDirectory('guides/secure-development'), + simpleLink('/autopilot', 'Autopilot Overview'), + getGuideDirectory('guides/autopilot', 'Autopilot Guide'), + getGuideDirectory('guides/autopilot-custom-upstream'), + simpleLink('/ssh-keys'), + simpleLink('/billing'), + + ], + } + +}; + +export default accountManagement; diff --git a/src/components/omniSidebarNav/submenus/frontEndSites.js b/src/components/omniSidebarNav/submenus/frontEndSites.js new file mode 100644 index 0000000000..0bdae423c9 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/frontEndSites.js @@ -0,0 +1,20 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const frontEndSites = () => { + return { + link: '/guides/decoupled', + title: 'Front-End Sites and Starter Kits', + children: [ + getGuideDirectory('guides/decoupled/overview'), + getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'), + getGuideDirectory('guides/decoupled/wp-backend-starters'), + getGuideDirectory('guides/decoupled/wp-gatsby-frontend-starters'), + getGuideDirectory('guides/decoupled/drupal-backend-starters'), + getGuideDirectory('guides/decoupled/drupal-nextjs-frontend-starters'), + getGuideDirectory('guides/decoupled/no-starter-kit'), + ], + } + +}; + +export default frontEndSites; diff --git a/src/components/omniSidebarNav/submenus/integrations.js b/src/components/omniSidebarNav/submenus/integrations.js new file mode 100644 index 0000000000..45c1f9c869 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/integrations.js @@ -0,0 +1,17 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const integrations = () => { + return { + link: '/asdfasdfasdf', + // better name for this section needed + title: 'Futher Integrations', + children: [ + getGuideDirectory('guides/pagerduty', 'PagerDuty'), + getGuideDirectory('guides/accessibility'), + + ], + } + +}; + +export default integrations; diff --git a/src/components/omniSidebarNav/submenus/terminus.js b/src/components/omniSidebarNav/submenus/terminus.js new file mode 100644 index 0000000000..81293dd60c --- /dev/null +++ b/src/components/omniSidebarNav/submenus/terminus.js @@ -0,0 +1,33 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const terminus = () => { + return { + link: '/terminus', + title: 'Terminus', + children: [ + // @todo, copy the order from the terminus template + simpleLink('/terminus'), + simpleLink('/terminus-demo'), + simpleLink('/terminus-drupal-site-management'), + simpleLink('/terminus-overview'), + simpleLink('/terminus/ci/bitbucket'), + simpleLink('/terminus/ci/circleci'), + simpleLink('/terminus/ci/github-actions'), + simpleLink('/terminus/ci/gitlab'), + simpleLink('/terminus/commands'), + simpleLink('/terminus/configuration'), + simpleLink('/terminus/create'), + simpleLink('/terminus/directory'), + simpleLink('/terminus/examples'), + simpleLink('/terminus/install'), + simpleLink('/terminus/plugins'), + simpleLink('/terminus/scripting'), + simpleLink('/terminus/supported-terminus'), + simpleLink('/terminus/terminus-3-0'), + simpleLink('/terminus/updates'), + ] + } + +}; + +export default terminus; diff --git a/src/components/omniSidebarNav/submenus/webInfrastructure.js b/src/components/omniSidebarNav/submenus/webInfrastructure.js new file mode 100644 index 0000000000..7f291ceaa2 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/webInfrastructure.js @@ -0,0 +1,52 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const webInfrastructure = () => { + return { + link: '/platform', + title: 'Web Infrastructure', + children: [ + + + simpleLink('/object-cache', 'Object Cache', [ + + simpleLink('/object-cache/cli', 'CLI'), + simpleLink('/object-cache/drupal', 'Drupal'), + simpleLink('/object-cache/errors', 'Errors'), + simpleLink('/object-cache/faq', 'FAQ'), + simpleLink('/object-cache/remove', 'remove'), + simpleLink('/object-cache/wordpress', 'WordPress'), + simpleLink('/object-cache/wordpress-deprecated', 'WordPress deprecated'), + ]), + + simpleLink('/timeouts'), + simpleLink('/application-containers'), + simpleLink('/apcu'), + getGuideDirectory('guides/php'), + getGuideDirectory('guides/logs-pantheon', 'Log files'), + getGuideDirectory('guides/filesystem', 'Filesystem'), + getGuideDirectory('guides/global-cdn', 'Global CDN'), + getGuideDirectory('guides/agcdn'), + // delete this guide? + getGuideDirectory('guides/fastly-pantheon'), + // This page could use a refresh + simpleLink('/headless'), + getGuideDirectory('guides/backups'), + getGuideDirectory('guides/disaster-recovery', 'Disaster Recovery Playbook'), + getGuideDirectory('guides/edge-integrations', 'Edge Integrations'), + getGuideDirectory('guides/errors-and-server-responses'), + getGuideDirectory('guides/environment-configuration'), + getGuideDirectory('guides/wordpress-developer'), + getGuideDirectory('guides/wordpress-configurations'), + getGuideDirectory('guides/solr-drupal'), + getGuideDirectory('guides/redirect'), + getGuideDirectory('guides/mariadb-mysql'), + getGuideDirectory('guides/platform-considerations'), + getGuideDirectory('guides/frontend-performance'), + getGuideDirectory('guides/woocommerce', "WooCommerce"), + getGuideDirectory('guides/multisite', "WordPress Multisite"), + ], + } + +}; + +export default webInfrastructure; diff --git a/src/components/omniSidebarNav/submenus/workflows.js b/src/components/omniSidebarNav/submenus/workflows.js new file mode 100644 index 0000000000..f80cb2f3e7 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/workflows.js @@ -0,0 +1,34 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const workflows = () => { + return { + link: '/develop', + title: 'Development workflows', + children: [ + getGuideDirectory('guides/git', "Git"), + simpleLink('/hotfixes'), + getGuideDirectory('guides/multidev'), + getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), + getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), + getGuideDirectory('guides/sftp', 'SFTP'), + getGuideDirectory('guides/wp-cli', 'WP-CLI'), + getGuideDirectory('guides/drush', 'Drush (the Drupal CLI)'), + getGuideDirectory('guides/quicksilver', 'Quicksilver Workflow Hooks'), + getGuideDirectory('guides/local-development', 'Local Development'), + // maybe move this to a "tutorial" section + getGuideDirectory('guides/wordpress-git', 'WordPress and Git'), + getGuideDirectory('guides/build-tools', "build tools"), + { + link: '/asdfasdf', + title: 'Random Tutorials', + children: [ + simpleLink('/behat'), + simpleLink('/visual-studio-code'), + ] + }, + ], + } + +}; + +export default workflows; From 33926811774254476285a9aa648051a245a495b4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 20:54:38 -0500 Subject: [PATCH 137/259] assigning menus --- .../omniSidebarNav/submenus/accountManagement.js | 1 + .../omniSidebarNav/submenus/pagesToDelete.js | 4 ++++ .../omniSidebarNav/submenus/unassignedPages.js | 12 ++++++------ .../omniSidebarNav/submenus/webInfrastructure.js | 3 +++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/components/omniSidebarNav/submenus/accountManagement.js b/src/components/omniSidebarNav/submenus/accountManagement.js index 3ba17b25f8..45cd4771a2 100644 --- a/src/components/omniSidebarNav/submenus/accountManagement.js +++ b/src/components/omniSidebarNav/submenus/accountManagement.js @@ -9,6 +9,7 @@ const accountManagement = () => { getGuideDirectory('guides/account-mgmt/billing'), getGuideDirectory('guides/account-mgmt/plans'), getGuideDirectory('guides/account-mgmt/traffic'), + simpleLink('/agency-tips'), getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), getGuideDirectory('guides/enterprise-billing-center'), getGuideDirectory('guides/sso'), diff --git a/src/components/omniSidebarNav/submenus/pagesToDelete.js b/src/components/omniSidebarNav/submenus/pagesToDelete.js index 82739cfb37..9090488e2f 100644 --- a/src/components/omniSidebarNav/submenus/pagesToDelete.js +++ b/src/components/omniSidebarNav/submenus/pagesToDelete.js @@ -7,6 +7,10 @@ const dnsProviders = () => { children: [ simpleLink('/workshops'), + + // This is a really small page. + simpleLink('/add-site-clone'), + ] } diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js index c6c726ab49..b2d1d74840 100644 --- a/src/components/omniSidebarNav/submenus/unassignedPages.js +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -5,19 +5,19 @@ const unassignedPages = () => { link: '/asdfasdfasdf', title: 'Unassigned', children: [ + simpleLink('/addons'), simpleLink('/'), + + simpleLink('/add-site'), - simpleLink('/add-site-clone'), + simpleLink('/add-site-custom-upstream'), simpleLink('/add-site-dashboard'), - simpleLink('/addons'), - simpleLink('/agency-tips'), + + simpleLink('/automate'), simpleLink('/basic-troubleshooting'), simpleLink('/bots-and-indexing'), - simpleLink('/cache'), - simpleLink('/cache-control'), - simpleLink('/caching-advanced-topics'), simpleLink('/certificate-bundles'), simpleLink('/clamav'), simpleLink('/clear-caches'), diff --git a/src/components/omniSidebarNav/submenus/webInfrastructure.js b/src/components/omniSidebarNav/submenus/webInfrastructure.js index 7f291ceaa2..f7d37f13ea 100644 --- a/src/components/omniSidebarNav/submenus/webInfrastructure.js +++ b/src/components/omniSidebarNav/submenus/webInfrastructure.js @@ -6,6 +6,9 @@ const webInfrastructure = () => { title: 'Web Infrastructure', children: [ + simpleLink('/cache'), + simpleLink('/cache-control'), + simpleLink('/caching-advanced-topics'), simpleLink('/object-cache', 'Object Cache', [ From 2fa78138a0c6513a875dcd622d9f0653d02c9ab6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 21:24:08 -0500 Subject: [PATCH 138/259] a few more assignments --- .../submenus/unassignedPages.js | 22 ++++++++++--------- .../submenus/webInfrastructure.js | 4 ++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js index b2d1d74840..06324bf040 100644 --- a/src/components/omniSidebarNav/submenus/unassignedPages.js +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -5,19 +5,10 @@ const unassignedPages = () => { link: '/asdfasdfasdf', title: 'Unassigned', children: [ - simpleLink('/addons'), - simpleLink('/'), - - - simpleLink('/add-site'), - simpleLink('/add-site-custom-upstream'), - simpleLink('/add-site-dashboard'), + simpleLink('/automate'), - simpleLink('/automate'), - simpleLink('/basic-troubleshooting'), - simpleLink('/bots-and-indexing'), simpleLink('/certificate-bundles'), simpleLink('/clamav'), simpleLink('/clear-caches'), @@ -156,6 +147,17 @@ const unassignedPages = () => { simpleLink('/wordpress-known-issues'), simpleLink('/workflow-logs'), + + simpleLink('/addons'), + simpleLink('/'), + simpleLink('/add-site'), + simpleLink('/add-site-custom-upstream'), + simpleLink('/add-site-dashboard'), + + + + + ], } diff --git a/src/components/omniSidebarNav/submenus/webInfrastructure.js b/src/components/omniSidebarNav/submenus/webInfrastructure.js index f7d37f13ea..3574e4a2bc 100644 --- a/src/components/omniSidebarNav/submenus/webInfrastructure.js +++ b/src/components/omniSidebarNav/submenus/webInfrastructure.js @@ -10,6 +10,10 @@ const webInfrastructure = () => { simpleLink('/cache-control'), simpleLink('/caching-advanced-topics'), + simpleLink('/basic-troubleshooting'), + + simpleLink('/bots-and-indexing'), + simpleLink('/object-cache', 'Object Cache', [ simpleLink('/object-cache/cli', 'CLI'), From 89f2b3b361916ad0a670fd7e308be92919ea4969 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 21:49:53 -0500 Subject: [PATCH 139/259] getting doc template with sidebar --- src/templates/doc.js | 30 ++++++++++++++++++++++-------- src/templates/guide.js | 2 ++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/templates/doc.js b/src/templates/doc.js index 2bc7a7dffd..7aa0651ed1 100644 --- a/src/templates/doc.js +++ b/src/templates/doc.js @@ -2,11 +2,15 @@ import React from "react" import { graphql } from "gatsby" import Layout from "../layout/layout" +import GuideLayout from "../layout/GuideLayout" + import SEO from "../layout/seo" import HeaderBody from "../components/headerBody" import TOC from "../components/toc" import GetFeedback from "../components/getFeedback" + + import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" import MdxWrapper from "../components/mdxWrapper" @@ -48,8 +52,16 @@ class DocTemplate extends React.Component { const node = this.props.data.doc const isoDate = this.props.data.date + // Preprocess content region layout if has TOC or not. + const hasTOC = node.frontmatter.showtoc + const ContainerDiv = ({ children }) => ( +
{children}
+ ) + const ContentLayoutType = hasTOC ? SidebarLayout : ContainerDiv + + return ( - + + + + +
- - - -
@@ -104,7 +117,8 @@ class DocTemplate extends React.Component {
-
+ + ) } } diff --git a/src/templates/guide.js b/src/templates/guide.js index 74eedab3a1..f41a86c3db 100644 --- a/src/templates/guide.js +++ b/src/templates/guide.js @@ -11,6 +11,8 @@ import MdxWrapper from "../components/mdxWrapper" import OmniSidebarNav from "../components/omniSidebarNav"; + + class GuideTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ From 762155eb162abe94cec0a163c68aaef7de5518ce Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sat, 13 Jul 2024 21:58:09 -0500 Subject: [PATCH 140/259] dns menus --- .../omniSidebarNav/submenus/dnsProviders.js | 24 +++++-------- .../submenus/unassignedPages.js | 34 +++++++++++++------ 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/components/omniSidebarNav/submenus/dnsProviders.js b/src/components/omniSidebarNav/submenus/dnsProviders.js index 61db2c968c..ca3732ed71 100644 --- a/src/components/omniSidebarNav/submenus/dnsProviders.js +++ b/src/components/omniSidebarNav/submenus/dnsProviders.js @@ -5,26 +5,18 @@ const dnsProviders = () => { link: '/dns-providers', title: 'DNS Providers', children: [ - /* - 1 & 1 - Amazon Route 53 - Cloudflare - DNS Made Easy - DreamHost - Dyn - Enom - Gandi - GoDaddy - Google - Namecheap - Network Solutions - */ simpleLink('/1-and-1', '1 & 1'), simpleLink('/route53', 'Amazon Route 53'), simpleLink('/cloudflare', 'Cloudflare'), simpleLink('/dns-made-easy', 'DNS Made Easy'), - - + simpleLink('/dreamhost'), + simpleLink('/dyn'), + simpleLink('/enom'), + simpleLink('/gandi'), + simpleLink('/godaddy'), + simpleLink('/google'), + simpleLink('/namecheap'), + simpleLink('/network-solutions'), ], } diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js index 06324bf040..82dc5f640d 100644 --- a/src/components/omniSidebarNav/submenus/unassignedPages.js +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -10,11 +10,19 @@ const unassignedPages = () => { simpleLink('/certificate-bundles'), + + // drupal simpleLink('/clamav'), + simpleLink('/clear-caches'), + simpleLink('/cookies'), simpleLink('/client-ip'), + + // @todo, this page is not loading?? simpleLink('/cloud-optimization'), - simpleLink('/code-of-conduct'), + + + simpleLink('/composer'), simpleLink('/composer-convert'), simpleLink('/composer-convert-from-empty'), @@ -22,8 +30,8 @@ const unassignedPages = () => { simpleLink('/connection-modes'), simpleLink('/content-staging'), simpleLink('/continuous-integration'), - simpleLink('/contribute'), - simpleLink('/cookies'), + + simpleLink('/core-updates'), simpleLink('/crisis-response-upstream'), simpleLink('/custom-certificates'), @@ -39,7 +47,7 @@ const unassignedPages = () => { simpleLink('/develop-drupal'), simpleLink('/develop-wordpress'), simpleLink('/doc-template'), - simpleLink('/dreamhost'), + simpleLink('/drupal'), simpleLink('/drupal-10'), simpleLink('/drupal-advanced-page-cache'), @@ -60,17 +68,17 @@ const unassignedPages = () => { simpleLink('/drupal-to-build-tools'), simpleLink('/drupal-updates'), simpleLink('/drush'), - simpleLink('/dyn'), + simpleLink('/email'), - simpleLink('/enom'), + simpleLink('/enterprise-billing-center'), simpleLink('/external-libraries'), simpleLink('/faq'), - simpleLink('/gandi'), + simpleLink('/glossary/'), simpleLink('/go-live'), - simpleLink('/godaddy'), - simpleLink('/google'), + + simpleLink('/guides'), simpleLink('/guides/account-mgmt'), simpleLink('/guides/security'), @@ -93,9 +101,9 @@ const unassignedPages = () => { simpleLink('/modules-known-issues'), simpleLink('/modules-plugins-known-issues'), simpleLink('/multizone-failover'), - simpleLink('/namecheap'), + simpleLink('/nested-docroot'), - simpleLink('/network-solutions'), + simpleLink('/newrelic'), simpleLink('/opensolr'), simpleLink('/optimize-wp-options-table-autoloaded-data'), @@ -147,6 +155,10 @@ const unassignedPages = () => { simpleLink('/wordpress-known-issues'), simpleLink('/workflow-logs'), + // about docs + simpleLink('/code-of-conduct'), + simpleLink('/contribute'), + simpleLink('/addons'), simpleLink('/'), From ca95d9bcbd9eb53394f9bf28fbba8534f78643a8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sun, 14 Jul 2024 20:45:53 -0500 Subject: [PATCH 141/259] lots of menu moving --- .../submenus/accountManagement.js | 6 ++ .../omniSidebarNav/submenus/dnsProviders.js | 3 + .../omniSidebarNav/submenus/integrations.js | 2 + .../omniSidebarNav/submenus/pagesToDelete.js | 1 + .../omniSidebarNav/submenus/terminus.js | 1 + .../submenus/unassignedPages.js | 63 +++++-------------- .../submenus/webInfrastructure.js | 46 +++++++++++++- .../omniSidebarNav/submenus/workflows.js | 6 ++ 8 files changed, 79 insertions(+), 49 deletions(-) diff --git a/src/components/omniSidebarNav/submenus/accountManagement.js b/src/components/omniSidebarNav/submenus/accountManagement.js index 45cd4771a2..1678a3dd89 100644 --- a/src/components/omniSidebarNav/submenus/accountManagement.js +++ b/src/components/omniSidebarNav/submenus/accountManagement.js @@ -10,8 +10,11 @@ const accountManagement = () => { getGuideDirectory('guides/account-mgmt/plans'), getGuideDirectory('guides/account-mgmt/traffic'), simpleLink('/agency-tips'), + + getGuideDirectory('guides/account-mgmt/workspace-sites-teams'), getGuideDirectory('guides/enterprise-billing-center'), + simpleLink('/ldap-and-ldaps'), getGuideDirectory('guides/sso'), getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'), // @todo, this page is oddly short. @@ -20,6 +23,9 @@ const accountManagement = () => { getGuideDirectory('guides/professional-services'), getGuideDirectory('guides/domains'), + // @todo, TOC doesn't work on this page + simpleLink('/custom-upstreams'), + getGuideDirectory('guides/custom-upstream'), getGuideDirectory('guides/secure-development'), simpleLink('/autopilot', 'Autopilot Overview'), diff --git a/src/components/omniSidebarNav/submenus/dnsProviders.js b/src/components/omniSidebarNav/submenus/dnsProviders.js index ca3732ed71..3d84997a04 100644 --- a/src/components/omniSidebarNav/submenus/dnsProviders.js +++ b/src/components/omniSidebarNav/submenus/dnsProviders.js @@ -5,6 +5,9 @@ const dnsProviders = () => { link: '/dns-providers', title: 'DNS Providers', children: [ + // This page doesn't have a title??? + simpleLink('/configure-dns'), + simpleLink('/1-and-1', '1 & 1'), simpleLink('/route53', 'Amazon Route 53'), simpleLink('/cloudflare', 'Cloudflare'), diff --git a/src/components/omniSidebarNav/submenus/integrations.js b/src/components/omniSidebarNav/submenus/integrations.js index 45c1f9c869..80e1420a3d 100644 --- a/src/components/omniSidebarNav/submenus/integrations.js +++ b/src/components/omniSidebarNav/submenus/integrations.js @@ -8,6 +8,8 @@ const integrations = () => { children: [ getGuideDirectory('guides/pagerduty', 'PagerDuty'), getGuideDirectory('guides/accessibility'), + simpleLink('/deploybot'), + ], } diff --git a/src/components/omniSidebarNav/submenus/pagesToDelete.js b/src/components/omniSidebarNav/submenus/pagesToDelete.js index 9090488e2f..09c047b419 100644 --- a/src/components/omniSidebarNav/submenus/pagesToDelete.js +++ b/src/components/omniSidebarNav/submenus/pagesToDelete.js @@ -10,6 +10,7 @@ const dnsProviders = () => { // This is a really small page. simpleLink('/add-site-clone'), + simpleLink('/supported-wp'), ] } diff --git a/src/components/omniSidebarNav/submenus/terminus.js b/src/components/omniSidebarNav/submenus/terminus.js index 81293dd60c..6a3025e7aa 100644 --- a/src/components/omniSidebarNav/submenus/terminus.js +++ b/src/components/omniSidebarNav/submenus/terminus.js @@ -25,6 +25,7 @@ const terminus = () => { simpleLink('/terminus/supported-terminus'), simpleLink('/terminus/terminus-3-0'), simpleLink('/terminus/updates'), + simpleLink('/machine-tokens'), ] } diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js index 82dc5f640d..7b1b843938 100644 --- a/src/components/omniSidebarNav/submenus/unassignedPages.js +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -26,56 +26,28 @@ const unassignedPages = () => { simpleLink('/composer'), simpleLink('/composer-convert'), simpleLink('/composer-convert-from-empty'), - simpleLink('/configure-dns'), - simpleLink('/connection-modes'), + simpleLink('/content-staging'), simpleLink('/continuous-integration'), - simpleLink('/core-updates'), simpleLink('/crisis-response-upstream'), simpleLink('/custom-certificates'), - simpleLink('/custom-upstreams'), simpleLink('/customer-scheduled-cron-jobs'), simpleLink('/cygwin-windows'), simpleLink('/dashboard'), - simpleLink('/date-and-time'), - simpleLink('/debug-cache'), simpleLink('/debug-connections'), - simpleLink('/debug-slow-performance'), - simpleLink('/deploybot'), + + simpleLink('/develop-drupal'), simpleLink('/develop-wordpress'), simpleLink('/doc-template'), - simpleLink('/drupal'), - simpleLink('/drupal-10'), - simpleLink('/drupal-advanced-page-cache'), - simpleLink('/drupal-broken-links'), - simpleLink('/drupal-cache'), - simpleLink('/drupal-caching-views'), - simpleLink('/drupal-cloudfront'), - simpleLink('/drupal-commerce'), - simpleLink('/drupal-composer-managed'), - simpleLink('/drupal-configuration-management'), - simpleLink('/drupal-cron'), - simpleLink('/drupal-from-dist'), - simpleLink('/drupal-launch-check'), - simpleLink('/drupal-migration'), - simpleLink('/drupal-phpstorm'), - simpleLink('/drupal-s3'), - simpleLink('/drupal-security-patches'), - simpleLink('/drupal-to-build-tools'), - simpleLink('/drupal-updates'), - simpleLink('/drush'), - simpleLink('/email'), simpleLink('/enterprise-billing-center'), simpleLink('/external-libraries'), - simpleLink('/faq'), - simpleLink('/glossary/'), simpleLink('/go-live'), @@ -84,37 +56,32 @@ const unassignedPages = () => { simpleLink('/guides/security'), simpleLink('/guides/wordpress-composer/pre-ga'), simpleLink('/horizontal-scalability'), - simpleLink('/http-to-https'), simpleLink('/inclusive-language'), simpleLink('/integrations'), simpleLink('/jenkins'), - simpleLink('/ldap-and-ldaps'), simpleLink('/load-and-performance-testing'), simpleLink('/load-testing-with-blazemeter'), simpleLink('/lockr'), - simpleLink('/machine-tokens'), + simpleLink('/migrate-cpanel'), simpleLink('/migrate-manual'), simpleLink('/migrate-wordpress-multisite'), - simpleLink('/mime-types'), - simpleLink('/modules'), - simpleLink('/modules-known-issues'), + simpleLink('/modules-plugins-known-issues'), simpleLink('/multizone-failover'), simpleLink('/nested-docroot'), simpleLink('/newrelic'), - simpleLink('/opensolr'), + simpleLink('/optimize-wp-options-table-autoloaded-data'), simpleLink('/oss-support-levels'), simpleLink('/outgoing-ips'), simpleLink('/overview'), - simpleLink('/pantheon-community'), simpleLink('/pantheon-workflow'), simpleLink('/pantheon-yml'), simpleLink('/pantheon-yml-overview'), - simpleLink('/pantheon_stripped'), + simpleLink('/partial-composer'), simpleLink('/performance'), simpleLink('/personal-settings'), @@ -124,7 +91,6 @@ const unassignedPages = () => { simpleLink('/platform-upgrade'), simpleLink('/plugins-known-issues'), simpleLink('/products'), - simpleLink('/regions'), simpleLink('/relaunch'), simpleLink('/required-reading'), simpleLink('/rerouting-outbound-email'), @@ -132,22 +98,18 @@ const unassignedPages = () => { simpleLink('/search/'), simpleLink('/sendgrid'), simpleLink('/server_name-and-server_port'), - simpleLink('/services-yml'), - simpleLink('/sftp'), simpleLink('/sign-up'), simpleLink('/single-application-sites'), simpleLink('/site-dashboard'), - simpleLink('/solr'), simpleLink('/start-state'), simpleLink('/static-site-empty-upstream'), simpleLink('/static-site-empty-upstream-demo'), - simpleLink('/style-guide'), - simpleLink('/supported-drupal'), - simpleLink('/supported-wp'), + + simpleLink('/switch-drupal-recommended-upstream'), simpleLink('/symlinks-assumed-write-access'), simpleLink('/tax-exempt-status'), - simpleLink('/trainers'), + simpleLink('/troubleshoot'), simpleLink('/unwind-drupal-multisite'), simpleLink('/upgrade-drupal-with-ic-to-latest'), @@ -158,6 +120,11 @@ const unassignedPages = () => { // about docs simpleLink('/code-of-conduct'), simpleLink('/contribute'), + simpleLink('/pantheon-community'), + simpleLink('/trainers'), + simpleLink('/style-guide'), + simpleLink('/faq'), + simpleLink('/glossary/'), simpleLink('/addons'), diff --git a/src/components/omniSidebarNav/submenus/webInfrastructure.js b/src/components/omniSidebarNav/submenus/webInfrastructure.js index 3574e4a2bc..648160b51d 100644 --- a/src/components/omniSidebarNav/submenus/webInfrastructure.js +++ b/src/components/omniSidebarNav/submenus/webInfrastructure.js @@ -5,10 +5,21 @@ const webInfrastructure = () => { link: '/platform', title: 'Web Infrastructure', children: [ - + simpleLink('/regions'), + simpleLink('/pantheon_stripped'), simpleLink('/cache'), simpleLink('/cache-control'), simpleLink('/caching-advanced-topics'), + simpleLink('/debug-cache'), + simpleLink('/http-to-https'), + + + // @todo, this page is not loading?? + simpleLink('/debug-slow-performance'), + + + + simpleLink('/date-and-time'), simpleLink('/basic-troubleshooting'), @@ -24,6 +35,7 @@ const webInfrastructure = () => { simpleLink('/object-cache/wordpress', 'WordPress'), simpleLink('/object-cache/wordpress-deprecated', 'WordPress deprecated'), ]), + simpleLink('/mime-types'), simpleLink('/timeouts'), simpleLink('/application-containers'), @@ -44,6 +56,8 @@ const webInfrastructure = () => { getGuideDirectory('guides/environment-configuration'), getGuideDirectory('guides/wordpress-developer'), getGuideDirectory('guides/wordpress-configurations'), + simpleLink('/opensolr'), + simpleLink('/solr'), getGuideDirectory('guides/solr-drupal'), getGuideDirectory('guides/redirect'), getGuideDirectory('guides/mariadb-mysql'), @@ -51,6 +65,36 @@ const webInfrastructure = () => { getGuideDirectory('guides/frontend-performance'), getGuideDirectory('guides/woocommerce', "WooCommerce"), getGuideDirectory('guides/multisite', "WordPress Multisite"), + + simpleLink('/supported-drupal'), + simpleLink('/services-yml'), + simpleLink('/modules'), + simpleLink('/modules-known-issues'), + + simpleLink('/drupal'), + simpleLink('/drupal-10'), + simpleLink('/drupal-advanced-page-cache'), + simpleLink('/drupal-broken-links'), + simpleLink('/drupal-cache'), + simpleLink('/drupal-caching-views'), + simpleLink('/drupal-cloudfront'), + simpleLink('/drupal-commerce'), + simpleLink('/drupal-composer-managed'), + simpleLink('/drupal-configuration-management'), + simpleLink('/drupal-cron'), + simpleLink('/drupal-from-dist'), + simpleLink('/drupal-launch-check'), + simpleLink('/drupal-migration'), + simpleLink('/drupal-phpstorm'), + simpleLink('/drupal-s3'), + simpleLink('/drupal-security-patches'), + simpleLink('/drupal-to-build-tools'), + simpleLink('/drupal-updates'), + simpleLink('/drush'), + + + + ], } diff --git a/src/components/omniSidebarNav/submenus/workflows.js b/src/components/omniSidebarNav/submenus/workflows.js index f80cb2f3e7..1a650b1de8 100644 --- a/src/components/omniSidebarNav/submenus/workflows.js +++ b/src/components/omniSidebarNav/submenus/workflows.js @@ -8,6 +8,12 @@ const workflows = () => { getGuideDirectory('guides/git', "Git"), simpleLink('/hotfixes'), getGuideDirectory('guides/multidev'), + simpleLink('/sftp'), + simpleLink('/core-updates'), + + // This page is empty + simpleLink('/connection-modes'), + getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), getGuideDirectory('guides/sftp', 'SFTP'), From c591782c8ffad3fe7501289087018419a83fd65c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sun, 14 Jul 2024 21:06:52 -0500 Subject: [PATCH 142/259] Drupal and WordPress separate menus --- src/components/omniSidebarNav/getOmniItems.js | 4 ++ .../omniSidebarNav/submenus/drupal.js | 38 +++++++++++++++++++ .../submenus/migrateAndUpgrade.js | 7 ++++ .../submenus/unassignedPages.js | 26 +++++-------- .../submenus/webInfrastructure.js | 36 +++++++----------- .../omniSidebarNav/submenus/wordpress.js | 24 ++++++++++++ .../omniSidebarNav/submenus/workflows.js | 4 ++ 7 files changed, 99 insertions(+), 40 deletions(-) create mode 100644 src/components/omniSidebarNav/submenus/drupal.js create mode 100644 src/components/omniSidebarNav/submenus/wordpress.js diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js index c8a72501f9..fe0c788b29 100644 --- a/src/components/omniSidebarNav/getOmniItems.js +++ b/src/components/omniSidebarNav/getOmniItems.js @@ -6,6 +6,8 @@ import dnsProviders from './submenus/dnsProviders'; import pagesToDelete from './submenus/pagesToDelete'; import unassignedPages from './submenus/unassignedPages'; import migrateAndUpgrade from './submenus/migrateAndUpgrade'; +import drupal from './submenus/drupal'; +import wordpress from './submenus/wordpress'; import webInfrastructure from './submenus/webInfrastructure'; import accountManagement from './submenus/accountManagement'; import integrations from './submenus/integrations'; @@ -24,6 +26,8 @@ const getOmniItems = () => { pagesToDelete(), unassignedPages(), getStarted(), + wordpress(), + drupal(), dnsProviders(), migrateAndUpgrade(), webInfrastructure(), diff --git a/src/components/omniSidebarNav/submenus/drupal.js b/src/components/omniSidebarNav/submenus/drupal.js new file mode 100644 index 0000000000..09313bd99c --- /dev/null +++ b/src/components/omniSidebarNav/submenus/drupal.js @@ -0,0 +1,38 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const drupal = () => { + return { + link: '/drupal', + title: 'Drupal', + children: [ + simpleLink('/drupal-10'), + simpleLink('/drupal-advanced-page-cache'), + simpleLink('/drupal-broken-links'), + simpleLink('/drupal-cache'), + simpleLink('/drupal-caching-views'), + simpleLink('/drupal-cloudfront'), + simpleLink('/drupal-commerce'), + simpleLink('/drupal-composer-managed'), + simpleLink('/drupal-configuration-management'), + simpleLink('/drupal-cron'), + simpleLink('/drupal-from-dist'), + simpleLink('/drupal-launch-check'), + simpleLink('/drupal-migration'), + simpleLink('/drupal-phpstorm'), + simpleLink('/drupal-s3'), + simpleLink('/drupal-security-patches'), + simpleLink('/drupal-to-build-tools'), + simpleLink('/drupal-updates'), + simpleLink('/unwind-drupal-multisite'), + simpleLink('/upgrade-drupal-with-ic-to-latest'), + + + simpleLink('/switch-drupal-recommended-upstream'), + + + ] + } + +}; + +export default drupal; diff --git a/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js b/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js index f68cf51c87..ee4d4c6758 100644 --- a/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js +++ b/src/components/omniSidebarNav/submenus/migrateAndUpgrade.js @@ -23,6 +23,13 @@ const migrateAndUpgrade = () => { getGuideDirectory('guides/migrate/platformsh', 'Platform.sh'), + simpleLink('/migrate-cpanel'), + simpleLink('/migrate-manual'), + simpleLink('/migrate-wordpress-multisite'), + + + + // Needs a title override getGuideDirectory('guides/drupal/drupal-hosted-createcustom', 'drupal-hosted-createcustom'), diff --git a/src/components/omniSidebarNav/submenus/unassignedPages.js b/src/components/omniSidebarNav/submenus/unassignedPages.js index 7b1b843938..970bdb9837 100644 --- a/src/components/omniSidebarNav/submenus/unassignedPages.js +++ b/src/components/omniSidebarNav/submenus/unassignedPages.js @@ -56,31 +56,24 @@ const unassignedPages = () => { simpleLink('/guides/security'), simpleLink('/guides/wordpress-composer/pre-ga'), simpleLink('/horizontal-scalability'), - simpleLink('/inclusive-language'), simpleLink('/integrations'), simpleLink('/jenkins'), simpleLink('/load-and-performance-testing'), simpleLink('/load-testing-with-blazemeter'), simpleLink('/lockr'), - simpleLink('/migrate-cpanel'), - simpleLink('/migrate-manual'), - simpleLink('/migrate-wordpress-multisite'), + simpleLink('/modules-plugins-known-issues'), simpleLink('/multizone-failover'), - simpleLink('/nested-docroot'), - simpleLink('/newrelic'), simpleLink('/optimize-wp-options-table-autoloaded-data'), simpleLink('/oss-support-levels'), simpleLink('/outgoing-ips'), simpleLink('/overview'), - simpleLink('/pantheon-workflow'), - simpleLink('/pantheon-yml'), - simpleLink('/pantheon-yml-overview'), + simpleLink('/partial-composer'), simpleLink('/performance'), @@ -95,7 +88,6 @@ const unassignedPages = () => { simpleLink('/required-reading'), simpleLink('/rerouting-outbound-email'), simpleLink('/resetting-passwords'), - simpleLink('/search/'), simpleLink('/sendgrid'), simpleLink('/server_name-and-server_port'), simpleLink('/sign-up'), @@ -106,15 +98,10 @@ const unassignedPages = () => { simpleLink('/static-site-empty-upstream-demo'), - simpleLink('/switch-drupal-recommended-upstream'), - simpleLink('/symlinks-assumed-write-access'), simpleLink('/tax-exempt-status'), - simpleLink('/troubleshoot'), - simpleLink('/unwind-drupal-multisite'), - simpleLink('/upgrade-drupal-with-ic-to-latest'), - simpleLink('/wordpress'), - simpleLink('/wordpress-known-issues'), + + simpleLink('/workflow-logs'), // about docs @@ -125,6 +112,11 @@ const unassignedPages = () => { simpleLink('/style-guide'), simpleLink('/faq'), simpleLink('/glossary/'), + simpleLink('/search/'), + simpleLink('/inclusive-language'), + + + simpleLink('/addons'), diff --git a/src/components/omniSidebarNav/submenus/webInfrastructure.js b/src/components/omniSidebarNav/submenus/webInfrastructure.js index 648160b51d..6a2c5ace5c 100644 --- a/src/components/omniSidebarNav/submenus/webInfrastructure.js +++ b/src/components/omniSidebarNav/submenus/webInfrastructure.js @@ -54,8 +54,17 @@ const webInfrastructure = () => { getGuideDirectory('guides/edge-integrations', 'Edge Integrations'), getGuideDirectory('guides/errors-and-server-responses'), getGuideDirectory('guides/environment-configuration'), - getGuideDirectory('guides/wordpress-developer'), - getGuideDirectory('guides/wordpress-configurations'), + + // this is a landing page that could hold others. + simpleLink('/troubleshoot'), + + + simpleLink('/nested-docroot'), + + + simpleLink('/pantheon-yml'), + simpleLink('/pantheon-yml-overview'), + simpleLink('/opensolr'), simpleLink('/solr'), getGuideDirectory('guides/solr-drupal'), @@ -63,33 +72,14 @@ const webInfrastructure = () => { getGuideDirectory('guides/mariadb-mysql'), getGuideDirectory('guides/platform-considerations'), getGuideDirectory('guides/frontend-performance'), - getGuideDirectory('guides/woocommerce', "WooCommerce"), - getGuideDirectory('guides/multisite', "WordPress Multisite"), + simpleLink('/supported-drupal'), simpleLink('/services-yml'), simpleLink('/modules'), simpleLink('/modules-known-issues'), - simpleLink('/drupal'), - simpleLink('/drupal-10'), - simpleLink('/drupal-advanced-page-cache'), - simpleLink('/drupal-broken-links'), - simpleLink('/drupal-cache'), - simpleLink('/drupal-caching-views'), - simpleLink('/drupal-cloudfront'), - simpleLink('/drupal-commerce'), - simpleLink('/drupal-composer-managed'), - simpleLink('/drupal-configuration-management'), - simpleLink('/drupal-cron'), - simpleLink('/drupal-from-dist'), - simpleLink('/drupal-launch-check'), - simpleLink('/drupal-migration'), - simpleLink('/drupal-phpstorm'), - simpleLink('/drupal-s3'), - simpleLink('/drupal-security-patches'), - simpleLink('/drupal-to-build-tools'), - simpleLink('/drupal-updates'), + simpleLink('/drush'), diff --git a/src/components/omniSidebarNav/submenus/wordpress.js b/src/components/omniSidebarNav/submenus/wordpress.js new file mode 100644 index 0000000000..e8cb356bc4 --- /dev/null +++ b/src/components/omniSidebarNav/submenus/wordpress.js @@ -0,0 +1,24 @@ +import { getGuideDirectory, simpleLink } from './../helpers'; + +const wordpress = () => { + return { + // @todo This page is not a good landing page. + link: '/wordpress', + title: 'WordPress', + children: [ + + + getGuideDirectory('guides/wordpress-developer'), + getGuideDirectory('guides/wordpress-configurations'), + + simpleLink('/symlinks-assumed-write-access'), + + getGuideDirectory('guides/woocommerce', "WooCommerce"), + getGuideDirectory('guides/multisite', "WordPress Multisite"), + simpleLink('/wordpress-known-issues'), + ] + } + +}; + +export default wordpress; diff --git a/src/components/omniSidebarNav/submenus/workflows.js b/src/components/omniSidebarNav/submenus/workflows.js index 1a650b1de8..9f8a7e99da 100644 --- a/src/components/omniSidebarNav/submenus/workflows.js +++ b/src/components/omniSidebarNav/submenus/workflows.js @@ -11,9 +11,13 @@ const workflows = () => { simpleLink('/sftp'), simpleLink('/core-updates'), + simpleLink('/pantheon-workflow'), + + // This page is empty simpleLink('/connection-modes'), + simpleLink('/newrelic'), getGuideDirectory('guides/new-relic', 'New Relic Performance Monitoring'), getGuideDirectory('guides/wordpress-composer', 'WordPress and Composer'), getGuideDirectory('guides/sftp', 'SFTP'), From 3a682ded78c96c4216917e7087907a0a57b672ed Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sun, 14 Jul 2024 22:16:28 -0500 Subject: [PATCH 143/259] moving menus --- gatsby-ssr.js | 1 + .../submenus/accountManagement.js | 8 ++++++++ .../omniSidebarNav/submenus/dnsProviders.js | 2 ++ .../omniSidebarNav/submenus/drupal.js | 3 +++ .../omniSidebarNav/submenus/integrations.js | 3 +++ .../omniSidebarNav/submenus/pagesToDelete.js | 2 ++ .../submenus/unassignedPages.js | 20 ++++--------------- .../submenus/webInfrastructure.js | 14 +++++++++++++ .../omniSidebarNav/submenus/wordpress.js | 1 + .../omniSidebarNav/submenus/workflows.js | 4 ++++ 10 files changed, 42 insertions(+), 16 deletions(-) diff --git a/gatsby-ssr.js b/gatsby-ssr.js index ec0fbc5480..fa84526be0 100644 --- a/gatsby-ssr.js +++ b/gatsby-ssr.js @@ -8,6 +8,7 @@ export const onRenderBody = ({ setPostBodyComponents }) => {